【java基礎】abstract抽象類、方法的特點及注意事項
阿新 • • 發佈:2019-01-25
摘要:本文引自畢老師Java程式碼。
/* 抽象類: 抽象:籠統,模糊,看不懂!不具體。 特點: 1,方法只有宣告沒有實現時,該方法就是抽象方法,需要被abstract修飾。 抽象方法必須定義在抽象類中。該類必須也被abstract修飾。 2,抽象類不可以被例項化。為什麼?因為呼叫抽象方法沒意義。 3,抽象類必須由其子類覆蓋了所有的抽象方法後,該子類才可以例項化。 否則,這個子類還是抽象類。 1,抽象類中有建構函式嗎? 有,用於給子類物件進行初始化。 2,抽象類可以不定義抽象方法嗎? 可以的。 但是很少見,目的就是不讓該類建立物件。AWT的介面卡物件就是這種類。 通常這個類中的方法有方法體,但是卻沒有內容。 abstract class Demo { void show1() {} void show2() {} } 3,抽象關鍵字不可以和那些關鍵字共存? private 不行 static 不行 final 不行 4,抽象類和一般類的異同點。 相同點: 抽象類和一般類都是用來描述事物的,都在內部定了成員。 不同: 1,一般類有足夠的資訊描述事物。 抽象類描述事物的資訊有可能不足。 2,一般類中不能定義抽象方法,只能定非抽象方法。 抽象類中可定義抽象方法,同時也可以定義非抽象方法。 3,一般類可以被例項化。 抽象類不可以被例項化。 5,抽象類一定是個父類嗎? 是的。因為需要子類覆蓋其方法後才可以對子類例項化。 */ abstract class Demo { abstract /*抽象*/ void show(); } /* class DemoA extends Demo { void show() { System.out.println("demoa show"); } } class DemoB extends Demo { void show() { System.out.println("demob show"); } } */ abstract class 犬科 { abstract void 吼叫(); } class 狗 extends 犬科 { void 吼叫() { System.out.println("汪汪"); } } class 狼 extends 犬科 { void 吼叫() { System.out.println("嗷嗷"); } } class AbstractDemo { public static void main(String[] args) { System.out.println("Hello World!"); } }