使用了關鍵詞abstract聲明的類叫作“抽象類”。如果一個類裏包含了一個或多個抽象方法,類就必須指定成abstract(抽象)。
“抽象方法”,屬於一種不完整的方法,只含有一個聲明,沒有方法主體。
使用抽象類要注意以下幾個要點:
包含一個或者多個抽象方法的類必須被聲明爲抽象類.
將類聲明爲抽象類,不一定含有抽象方法.
通常認爲,在抽象類中不應該包括具體方法,建議儘量將通用的域和方法放在超類中.
抽象類不可以被實例化.即不能創建這個類的對象
實例代碼:
package com.imooc.chouxiang;
//定義一個抽象父類Telephone
public abstract class Telephone {
//定義兩個抽象方法,抽象方法沒有方法體,以分號結束。
public abstract void call();
public abstract void message();
}
定義兩個子類CellPhone,SmartPhone繼承Telephone,子類會自動生成call,message方法,在子類中實現具體的方法。
package com.imooc.chouxiang;
public class CellPhone extends Telephone {
@Override
public void call() {
System.out.println("傳統手機用鍵盤撥打電話!!");
}
@Override
public void message() {
System.out.println("傳統手機用鍵盤發短信!!");
}
}
package com.imooc.chouxiang;
public class SmartPhone extends Telephone {
@Override
public void call() {
System.out.println("智能手機用語音撥打電話!!");
}
@Override
public void message() {
System.out.println("智能手機用語音發送短信!!");
}
}
創建一個測試類測試抽象類及子類,代碼及運行結果如下:
package com.imooc.chouxiang;
public classTestPhone {
public static void main(String[] args) {
//CellPhone的一個實例
Telephonetl1=new CellPhone();
//調用CellPhone的兩個方法
tl1.call();
tl1.message();
//SmartPhone的一個實例
Telephonetl2=new SmartPhone();
//調用SmartPhone的兩個方法
tl2.call();
tl2.message();
}
}
運行結果如下:
傳統手機用鍵盤撥打電話!!
傳統手機用鍵盤發短信!!
智能手機用語音撥打電話!!
智能手機用語音發送短信!!