Java中的抽象類和介面,以及兩者的區別

2021-07-24 19:17:04 字數 1229 閱讀 6042

抽象類:

package practice;

/** * created by fangjiejie on 2016/11/21.

*/public

abstract

class

p32

//private abstract void seta();錯誤的,抽象方法不能是私有的

abstract

void seta();//含有抽象方法的一定是抽象類(只是宣告),

// 抽象方法不能在抽象類實現而是由繼承它的類實現

abstract string hello();

}class p320 extends p32

string hello()

public

static

void

main(string args)

}

介面:

package practice;

/** * created by fangjiejie on 2016/11/21.

*/public

inte***ce

p33inte***ce

p333

extends

p3333,p33

inte***ce

p3333

class

pp33

implements

p33,p333

@override

public

void b()

public

void c()

}class

ppp33

extends

pp33

implements

p33}

抽象類與介面的區別:

1.介面中的方法都是抽象的,而且是公共的,抽象類中可以有一般方法,訪問作用域可以是四種修飾符,抽象方法不能是private;

2.介面中沒有變數,都是常量,而抽象類中有變數和常量

3.類和介面的關係是implements是實現,而類和抽象類的關係是繼承extends

4.類可以實現多個介面,但只能繼承乙個抽象類

5.介面可以多繼承,但不能實現。

6.抽象類只能有乙個父類

總結:介面只能繼承介面,而且可以多繼承,但不能實現介面。

類只能繼承乙個類,但可以實現多個介面。

java中介面和抽象類

包含抽象方法的類叫做抽象類。如果乙個類包含乙個或多個抽象方法,該類必須被限定為抽象的。如果從乙個抽象類繼承,並想建立改新類的物件,那麼就必須為基類中的所有抽象方法提供方法定義。如果不這樣做 可以選擇不做 那麼匯出類便也是抽象類,並且編譯器會強制我們使用abstract關鍵字來限定這個類。建立抽象類和...

Java中的抽象類和介面

注意 抽象類不能被例項化。抽象類不一定包含abstract方法 可以有實現的方法 一旦包含abstract方法,則這個類必須宣告為abstract。抽象方法不能有主體。當乙個類繼承抽象類,需要將抽象類中的所有抽象方法全部實現。注意 介面不能被例項化。介面中所有方法不能有主體。乙個子類只能繼承乙個父類...

java中的抽象類和介面

一 抽象類 1.1定義 抽象類是用來捕捉子類通用特性的。它不能被例項化,只能被用作子類的超類,使用abstract修飾符來定義。1.2抽象類和抽象方法 有抽象方法的類只能被定義成抽象類,抽象類裡可以沒有抽象方法 抽象類和抽象方法都必須使用abstract修飾符來修飾,抽象方法不能有方法體 抽象類不能...