Java抽象類詳解

2021-08-21 15:57:38 字數 1652 閱讀 4616

一、抽象類定義

抽象類指包含抽象方法的類叫抽象類,抽象類必須用關鍵字abstract修飾。

public abstract class a 

a ()

public void action()

//抽象方法

public abstract void fun();

}

二、抽象類的使用

1.抽象類不能直接例項化,需要子類繼承父類向上轉型例項化物件。

2.乙個子類只能繼承(extends)單一的父類。

3.子類必須強制覆寫父類的抽象方法,普通方法可選擇覆寫。

範例:

abstract class a

public abstract void print();//抽象方法,沒有方法體,有abstract關鍵字做修飾

}//單繼承

class b extends a

}public class testdemo

}

現在就可以清楚的發現: 

(1)抽象類繼承子類裡面有明確的方法覆寫要求,而普通類可以有選擇性的來決定是否需要覆寫; 

(2)抽象類實際上就比普通類多了一些抽象方法而已,其他組成部分和普通類完全一樣; 

(3)普通類物件可以直接例項化,但抽象類的物件必須經過向上轉型之後才可以得到。

三、抽象類的使用限制

(1)抽象類中有構造方法麼? 

由於抽象類裡會存在一些屬性,那麼抽象類中一定存在構造方法,其存在目的是為了屬性的初始化。 

並且子類物件例項化的時候,依然滿足先執行父類構造,再執行子類構造的順序。

範例

abstract class a

public abstract void print();//抽象方法,沒有方法體,有abstract關鍵字做修飾

}//單繼承

class b extends a

@override

public void print()

}public class testdemo

}

(2)抽象類可以用final宣告麼? 

不能,因為抽象類必須有子類,而final定義的類不能有子類;

(3)抽象類能否使用static宣告? 

外部抽象類不允許使用static宣告,而內部的抽象類執行使用static宣告。使用static宣告的內部抽象類相當於乙個外部抽象類,繼承的時候使用「外部類.內部類」的形式表示類名稱。

(4)可以直接呼叫抽象類中用static宣告的方法麼? 

任何時候,如果要執行類中的static方法的時候,都可以在沒有物件的情況下直接呼叫,對於抽象類也一樣。 

(5)有時候由於抽象類中只需要乙個特定的系統子類操作,所以可以忽略掉外部子類。這樣的設計在系統類庫中會比較常見,目的是對使用者隱藏不需要知道的子類。 

package com.demo;

/** * created by ranjx on 2018/7/22.

*/public abstract class e

}public static e getinstance()

public static void main()

}

Java 抽象類詳解

三 抽象類總結 重點知識 例項化物件 newperoson vince vu 測試類 這裡p是乙個抽象類person的變數,person引用了乙個非抽象子類student的例項 public class test 上面中你可能會有個疑問,這不是呼叫了乙個沒有定義的方法嗎 p.getdescripti...

java抽象類抽象方法

抽象類 使用abstract關鍵字修飾的class,稱為抽象類 1 抽象類無法例項化 抽象方法 使用abstract關鍵字修飾的方法且沒有實現 有宣告無實現 稱為抽象方法 1 eg public abstract void method 2 沒有 3 抽象方法需要定義在抽象類中 抽象類和抽象方法 1...

抽象類 抽象方法詳解

抽象類 用abstract關鍵字來修飾乙個類時,這個類叫做抽象類 1,含有抽象方法的類就叫抽象類。2,抽象類中的抽象方法必須被實現!3,如果乙個子類沒有實現父類中的抽象方法,則子類也成為了乙個抽象類!4,抽象類中的普通方法,可以不必實現。2.方法 1,含有抽象方法的類就叫抽象類。2,抽象類中的抽象方...