簡單來說
抽象類通常用來作為一個類族的最頂端的父類,用最底層的類表示現實中的具體事物,用最頂層的類表示該類族所有事物的共性。用abstract關鍵字類修飾一個類,該類叫做抽象類。
有抽象類那么肯定也有抽象方法,什么是抽象方法呢?
抽象方法就是有名字,形參列表,返回值,沒有方法體的方法就做抽象方法。
抽象方法和抽象類的關系?
凡是沒有方法體的方法必須使用關鍵字abstract修飾為抽象方法。
凡是含有抽象方法的類必須聲明為抽象類。
1
2
3
4
5
6
7
8
|
abstract class a{ abstract public void f(); //有抽象方法的一定是抽象類 } abstract class b{ public void f(){ //抽象類不一定有抽象方法 } } |
我們從舉例中可以看出a類方法中沒有方法體,因此使用了關鍵字abstract并且a類也必須聲明為抽象類。
抽象類中的多態:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
abstract class a{ abstract public void f(); } class b extends a{ public void f(){ system.out.println( "bbb" ); } } public class text{ public static void main(string[] args){ a aa= new a(); //錯誤,抽象類不能實例化 b bb= new b(); //ok bb.f() //ok a aa; //抽象類可以定義一個抽象類的引用,但是不可以定義一個抽象類對象。 aa=bb; //利用抽象類的引用指向真正實現的子類,再利用多態調用其子類方法。 aa.f(); } } |
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對服務器之家的支持。如果你想了解更多相關內容請查看下面相關鏈接
原文鏈接:https://blog.csdn.net/mumu1998/article/details/81206664