Java中的抽象類

2021-07-27 15:31:01 字數 1979 閱讀 9382

抽象類定義

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 抽象類必須有其子類覆蓋所有抽象方法,該子類才能例項化。否則,子類還是抽...