抽象類就是不能使用new方法進行例項化的類,即沒有具體例項物件的類。抽象類有點類似「模板」的作用,目的是根據其格式來建立和修改新的類。物件不能由 抽象類直接建立,只可以通過抽象類派生出新的子類,再由其子類來建立物件。當乙個類被宣告為抽象類時,要在這個類前面加上修飾符abstract。
在抽象類中的成員方法可以包括一般方法和抽象方法。抽象方法就是以abstract修飾的方法,這種方法只宣告返回的資料型別、方法名稱和所需的引數,沒 有方法體,也就是說抽象方法只需要宣告而不需要實現。當乙個方法為抽象方法時,意味著這個方法必須被子類的方法所重寫,否則其子類的該方法仍然是 abstract的,而這個子類也必須是抽象的,即宣告為abstract。
抽象類中不一定包含抽象方法,但是包含抽象方法的類一定要被宣告為抽象類。抽象類本身不具備實際的功能,只能用於派生其子類。抽象類中可以包含構造方法, 但是構造方法不能被宣告為抽象。
抽象類不能用final來修飾,即乙個類不能既是最終類又是抽象類。
abstract不能與private、static、final、native並列修飾同乙個方法。
程式舉例:
abstract class animal //定義抽象類
abstract void eat(); //定義抽象方法
} class horse extends animal //定義繼承animal的子類
void eat() //重寫父類的抽象方法 }
class dog extends animal
{ string str;
dog(string s)
{ &nb ……
抽象方法 就 是以abstract修飾的方法,這種方法是不完整的;僅有宣告而沒有方法體。如:
abstract void f();
當乙個子類繼承某個抽象類時,它可以有兩個選擇:
部分實現或完全不實現父類的所有抽象方法,但此時子類必須宣告為抽象類。
實現父類所有的抽象方法,此時之類不比宣告為抽象類。
包含抽象方法的類叫做「抽象類 」。如果乙個類包含乙個或多個抽象方法,該類必須被限定為抽象的。(否則,編譯器就會報錯。)
抽象類不能被例項化(be instantiated),但可以例項化非抽象子類。
ps:抽象類 和介面的區別 :
乙個類可以實現任意多個介面,但最多只能作為乙個抽象類的子類。
乙個抽象類可以有若干個抽象方法(但到少要有乙個),而介面的所有方法都是抽象的,無論是否將它的方法顯示地宣告為抽象的。
乙個抽象類可以宣告例項變數,其子類可以繼承這些例項變數。而乙個介面不能宣告例項變數,不過介面可以宣告static final修飾域。
抽象類可以有構造方法,而介面不能。
抽象類的可見性修飾符可以是public、protected、private或無修飾符(表示包內可見);而介面的可見性修飾符只能是 public,或無修飾符(包內可見)。
抽象類的方法的可見性修飾符可是以protected、private,或無(表示包內可見);而乙個介面的方法的可見性修飾符只能是 public。
抽象類是從object類派生而來,它繼承了object的clone()和equals()方法。
java抽象類和抽象方法
抽象類就是不能使用new方法進行例項化的類,即沒有具體例項物件的類。抽象類有點類似 模板 的作用,目的是根據其格式來建立和修改新的類。物件不能由抽象類直接建立,只可以通過抽象類派生出新的子類,再由其子類來建立物件。當乙個類被宣告為抽象類時,要在這個類前面加上修飾符abstract。在抽象類中的成員方...
java抽象類和抽象方法
抽象類就是不能使用 new方法進行例項化的類,即沒有具體例項物件的類。抽象類有點類似 模板 的作用,目的是根據其格式來建立和修改新的類。物件不能由抽象類直接建立,只可以通過抽象類派生出新的子類,再由其子類來建立物件。當乙個類被宣告為抽象類時,要在這個類前面加上修飾符 abstract 在抽象類中的成...
java抽象類和抽象方法
一.抽象方法定義 使用abstract修飾且沒有方法體的方法,稱為抽象方法.特點 1.使用抽象abstract修飾,方法沒有方法體,留給子類去實現 覆蓋.2.抽象方法修飾符不能是private,final,static修飾,因為抽象方法要留給子類去實現 3.抽象方法必須定義在抽象類或者介面中.二.抽...