1. 程式人生 > >Java基礎-----抽象類

Java基礎-----抽象類

抽象類的概念

在java中,一個沒有方法體的方法應該定義為抽象方法,而類中如果有抽象方法,該類必須定義為抽象。

抽象方法沒有方法體。格式:

public abstract void eat();

抽象類的特點

(1)抽象類和抽象方法必須用abstract關鍵字修飾。
(2)抽象類中不一定有抽象方法,但是有抽象方法的類必須定義為抽象類。
(3)抽象類有構造方法,但是不能例項化。(因為它不是具體的)
那麼不能例項化為什麼還要有構造方法呢?
原因:用於子類訪問父類資料的初始化。
(4)抽象的子類

1、如果不想重寫抽象方法,該子類是一個抽象類。
2、重寫所有的抽象方法,這個時候子類是一個具體的類

注意:抽象的例項化可以通過多型來實現(父類引用指向子類物件)。

抽象類的成員特點:
(1)成員變數:既可以是變數,也可以是常量。
(2)構造方法:有,用於子類訪問父類資料的初始化。
(3)成員方法:既可以是抽象的,也可以是非抽象的。

抽象類的成員方法特性:
(1)抽象方法,強制要求子類做的事情。
(2)非抽象方法,子類繼承的事情,提高程式碼複用性。

一個類如果沒有抽象方法,可以定義成抽象類,其意義就是不建立物件。

不能和abstract共存的關鍵字:
(1)private 衝突:abstract要求重寫但是不能重寫。
(2)final 衝突:abstract要求重寫但是不能重寫
(3)static 無意義:static修飾的方法可以通過類名呼叫,但是沒有方法體所以呼叫無意義。