抽象方法宣告語法:
abstract void f();
包含抽象方法的類叫做抽象類,如果乙個類包含乙個或多個抽象方法,該類必須被限定為抽象類,負責編譯器就會報錯。且抽象類不允許被建立物件。
如果乙個類繼承自乙個抽象類,如果想建立此類的物件,就必須為父類(基類)中的抽象方法提供方法定義,否則此類只能被abstract修飾成為抽象類。
下面看一段**
abstract class animal
}class bird extends animal
@override
void run()
}public
class
testabstract
}/**
* output:
* zhazhazha...
* flying...
* eating...
*/
總結一下抽象類和抽象物件的幾個要點:
介面:inte***ce關鍵字使抽象的概念更向前邁了一步。這個關鍵字產生乙個完全抽象的類,他不提供任何具體的實現,,允許建立者確定方法名、引數列表和返回型別,但是沒有方法提。換句話說,介面只提供了形式,不提供任何具體實現。
再來看一段**:
public
inte***ce
testjiekou
class pig implements testjiekou
@override
public
void
eat()
@override
public
intnum(int a, int b)
}public
class
test01
}/**
* output:
* running..
* eating...
* 30
*/
介面可以實現多繼承,我們用一段**來看這一過程
inte***ce
printtest1
inte***ce
printtest2
inte***ce
printtest3
extends
printtest1,printtest2
class
test
implements
printtest3
@override
public
void test2()
@override
public
void test3()
}public
class
printtest
}/**
* output:
* test1()
* test2()
* test3()
*/
可以看見,在printtest3中繼承了前面兩個介面,所以當類test實現printtest3介面是需要重寫三個介面的所有方法。 關於抽象類 抽象方法以及介面
abstract修飾 抽象類不能被例項化,抽象類裡可以包含抽象方法也可以不包含 但有抽象方法的類必須是抽象類。抽象類可以包含 含有抽象方法的類,包括 只能定義為抽象類。利用抽象方法和抽象類的優勢,可以更好地發揮多型的優勢,使得程式更加靈活 abstract和final不能同時修飾同乙個類或方法 當使...
介面,抽象類,抽象方法
一.抽象方法 1.用abstract修飾 2.沒有方法體 二.抽象類 1.含有抽象方法的類叫抽象類 抽象類無法建立物件,只有被繼承並且覆蓋重寫後 去掉抽象 才能使用 三.介面 1.抽象方法 2.常量,常量必須是final的,比如電源中引數不能夠改變 3.預設 方法公升級用 4.靜態方法和私有方法 介...
介面以及抽象類
a 介面的格式 訪問修飾符 inte ce 介面名 a 抽象類的注意事項 1.抽象類可以繼承類或者抽象類。2.抽象類可以繼承類或者抽象類,同時再去實現介面。3.抽象類可以定義類和介面中所有的內容。抽象類是類和介面的整合 4.抽象類也是不能例項化物件的。d 繼承抽象類的格式 public class ...