Abstract 關鍵字
Abstract 可以修飾類、方法
關鍵點
- 如果一個類被修飾爲abstract,則此類必須被繼承使用
- abstract類不能存在對象
- abstract類可以將子類的共性最大型度的抽取出來,放在父類中,以提高簡潔性
- abstract修飾某個方法的,此時這個方法爲抽象方法,不許呀實現,在子類中實現後纔可以生效
- 抽象類中可以包含普通的方法,也可以沒有抽象方法
注意
private void print(){};此語句表示方法的空實現。
Abstract void print(); 此語句表示方法的抽象,無實現。
子類的方法必須覆蓋父類的抽象方法,方法才能夠起作用。
爲了實現多態,那麼父類必須有定義。而父類並不實現,留給子類去實現。此時可將父類定義成abstract類。如果沒有定義抽象的父類,那麼編譯會出現錯誤。
Abstract和static不能放在一起,否則便會出現錯誤。(這是因爲static不可被覆蓋,而abstract爲了生效必須被覆蓋。)
例子
public abstract class Telphone{
public abstract void call();
public abstract void message();
}
public class CellPhone extends Telphone{
@Override
public void call(){
}
@Override
public void message(){
}
}
public class SmartPhone extends Telphone{
@Override
public void call(){
}
@Override
public void message(){
}
}
public class Test{
public static void main(String[] args){
Telphone tp1 = new CellPhone();
tp1.call();
tp1.message();
Telphone tp2 = new SmartPhone();
tp2.call();
tp2.message();
}
}