抽象類定義
1、語法定義:
抽象類錢使用abstract關鍵字修飾,則該類為抽象類。
2、應用場景:
a、在某些情況下,某個父類只是知道其子類應該包含怎樣的方法,但無法準確知道這些子類如何實現這些方法
(抽象類約束子類必須有哪些方法,但並不關注子類怎麼去實現這些方法。)當多個類中出現相同功能,但是功能主體不同,
這是可以進行向上抽取。這時,只抽取功能定義,而不抽取功能主體。
b、從多個具有相同特徵的類中抽象出乙個抽象類,以這個抽象類作為子類的模板,從而避免了子類設計的隨意性。
3、作用:
限制規定子類必須實現某些方法,但不關注實現細節。
4、使用規則:
a、abstract定義抽象類
b、abstract定義抽象方法,只有宣告,不需要實現
c、包含抽象方法的類是抽象類
d、抽象類中可以包含普通的方法,也可以沒有抽象方法
e、抽象類不能直接建立,可以定義引用變數抽象類的特點:
f、抽象方法一定在抽象類中。
g、抽象方法和抽象類都必須被abstract關鍵字修飾。
h、抽象類不可以用new建立物件。因為呼叫抽象方法沒意義。
i、抽象類中的抽象方法要被使用,必須由子類複寫起所有的抽象方法後,建立子類物件呼叫。
j、 如果子類只覆蓋了部分抽象方法,那麼該子類還是乙個抽象類。
抽象類和一般類沒有太大的不同。
該如何描述事物,就如何描述事物,只不過,該事物出現了一些看不懂的東西。
這些不確定的部分,也是該事物的功能,需要明確出現。但是無法定義主體。
通過抽象方法來表示。
抽象模擬一般類多個了抽象函式。就是在類中可以定義抽象方法。
抽象類不可以例項化。
特殊:抽象類中可以不定義抽象方法,這樣做僅僅是不讓該類建立物件。
(注:抽象方法沒有方法體,以分號結束。)
練習:
abstract 關鍵字,和哪些關鍵字不能共存。
final:被final修飾的類不能有子類。而被abstract修飾的類一定是乙個父類。
private: 抽象類中的私有的抽象方法,不被子類所知,就無法被複寫。
而抽象方法出現的就是需要被複寫。
static:如果static可以修飾抽象方法,那麼連物件都省了,直接類名呼叫就可以了。
可是抽象方法執行沒意義。
抽象類中是否有建構函式?
有,抽象類是乙個父類,要給子類提供例項的初始化。
java中的抽象類
抽象類是指類被修飾符abstract修飾的類。抽象類不能夠建立物件。抽象方法是只有方法名,沒有方法體,沒有具體的實現。含有抽象方法的類一定是抽象類!抽象的動物類 public abstract class animal在繼承關係中,子類繼承抽象的父類,如果在子類中沒有實現父類的抽象方法,則子類一定是...
java 中的抽象類
在自上而下的繼承層次結構中,位於上層的類更具有通用性,甚至可能更加抽象。從某種角度看,祖先類更加通用,它只包含一些最基本的成員,人們只將它作為派生其他類的基類,而不會用來建立物件。甚至,可以只給出方法的定義而不實現,由子類根據具體需求來具體實現。這種只給出方法定義而不具體實現的方法被稱為抽象方法ab...
java中的抽象類
抽象類 是抽象的,籠統的,模糊不清的 特點 1 只有方法的宣告沒有實現,該方法是抽象方法,需要被abstract修飾,抽象方法必須定義在抽象類中。該類必須被abstract修飾。2 抽象類不可以被例項化,因為抽象方法沒有意義。3 抽象類必須有其子類覆蓋所有抽象方法,該子類才能例項化。否則,子類還是抽...