abstract修飾符可修飾字段、方法和類
2022-06-30
- 相關(guān)推薦
會(huì)使這個(gè)類成為一個(gè)抽象類,這個(gè)類將不能生成對(duì)象實(shí)例,但可以做為對(duì)象變量聲明的類型,也就是編譯時(shí)類型,抽象類就像當(dāng)于一類的半成品,需要子類繼承并覆蓋其中的抽象方法。
擴(kuò)展資料
abstract修飾方法:
會(huì)使這個(gè)方法變成抽象方法,也就是只有聲明(定義)而沒有實(shí)現(xiàn),實(shí)現(xiàn)部分以”;”代替。需要子類繼承實(shí)現(xiàn)(覆蓋)。
注意:有抽象方法的類一定是抽象類。但是抽象類中不一定都是抽象方法,也可以全是具體方法。
abstract修飾符在修飾類時(shí)必須放在類名前:
abstract修飾方法就是要求其子類覆蓋(實(shí)現(xiàn))這個(gè)方法。調(diào)用時(shí)可以以多態(tài)方式調(diào)用子類覆蓋(實(shí)現(xiàn))后的方法,也就是說抽象方法必須在其子類中實(shí)現(xiàn),除非子類本身也是抽象類。
注意:父類是抽象類,其中有抽象方法,那么子類繼承父類,并把父類中的所有抽象方法都實(shí)現(xiàn)(覆蓋)了,子類才有創(chuàng)建對(duì)象的實(shí)例的能力,否則子類也必須是抽象類。抽象類中可以有構(gòu)造方法,是子類在構(gòu)造子類對(duì)象時(shí)需要調(diào)用的父類(抽象類)的構(gòu)造方法。
舉個(gè)簡單的例子下面有一個(gè)抽象類
public class Test{
public static void main(String[] args){
E e=new F();
e.show();
}
}
abstract class E{
public abstract void show();//public abstract 可以省略
}
class F extends E{
public void show(){
System.out.println(0);
}
}
輸出:0