1. 程式人生 > >第七天繼承之抽象

第七天繼承之抽象

事物 否則 情況 存在 p s mil 類名 如果 私有

抽象類的產生:

分析事物時,發現了共性的內容,就會出向上的抽取,就會發生一種特殊的情況,就是方法的功能,但方法的主體不同,這個時候也可以抽取,但只能抽取方法的聲明,不抽取方法的主體,這就是一個抽象方法.

比如貓和狗都還是動物,都會叫,但他們的叫聲不同,這個時候就可以只抽取叫這個方法出來,而不必寫怎麽叫,這個方法就是抽象方法.

抽象方法:

只有方法聲明,而沒有具體的方法.java中的抽象方法用abstract修飾.

方法名後面直接跟一個分號,而不是花括號

例如:Public abstract 返回類型 方法名(參數);

凡是沒有方法體的方法必須使用關鍵字abstract修飾

凡是含有抽象方法的類就是抽象類

抽象類

:

抽象類: 抽象類就是不能被實例化的類,通常作為一個類的最頂層的父類,用底層實現具 體的事物,頂層表示共性,包含抽象方法的類必須聲明為抽象類,也可以不含有任 和抽象方法.

抽象類定義:abstract class 類名{};

抽象類的修飾符:必須為public或者protected,缺省的情況下默認為public

抽象類不能被實例化,不能new 原因: 如果可以new出來了,就可以調用方法,而抽象方 法沒有主體,根本就沒法運行

抽象類的使用:定義繼承抽象類,將抽象方法進行重寫,創建子類的對象.(如果子類沒有重 寫所有的父類抽象方法那麽子類也是抽象方法)

特點

抽象類和抽象方法都必須要被abstract修飾

抽象類不一定有抽象方法()

抽象方法一定在抽象類中

不能new出抽象類的對象,但可以定義一個抽象類的引用(抽象類也可以實現多態)

只有重寫了抽象類的所有抽象方法,器子類才能被穿件否則子類還是一個抽象類最後必 須有一個類來實現抽象方法

細節

抽象類可以沒有抽象方法,有什麽意義呢,不讓這個類創建對象,方法可以直接讓子類去 使用(適配器設計模式).

Abstract 不可以與paivate 共存 因為私有方法無法繼承也就不存在覆蓋.Final後面學 Static後面學


第七天繼承之抽象