含有抽象方法的類
沒有方法實現體的方法就是抽象方法
抽象方法的關鍵字是abstract 抽象方法沒有方法體
public
abstract 返回值資料型別 抽象方法名(引數列表)
;
注意抽象方法沒有方法體
public
abstract
class 類名
1.乙個類繼承抽象類,那麼就會重寫抽象類中所有的抽象方法.
2.抽象方法只存在於抽象類或者介面之中
1.不能直接例項化抽象類,不能直接例項化介面
2.用子類繼承抽象類或者實現介面,就能重寫裡面的抽象方法
3.在測試類裡面,建立子類物件,再呼叫和子類裡面重寫的抽象方法就能使用抽象方法了
4.子類必須重寫抽象類中所有的抽象方法
1.抽象類不能直接例項化.
2.子類繼承抽象類,必須沖洗全部的抽象方法
3.抽象類不一定包含抽象方法,但是含有抽象方法的類一定是抽象類
介面:多個類的公共規範,以抽象方法為主
介面的宣告格式:
public
inte***ce 介面名(
)
1.常量
2.抽象方法(主要)
3.預設方法(default修飾)(jdk1.8)
4.靜態方法(static修飾)(jdk1.8)
5.私有方法(private修飾)(jdk1.9) 主要是供給預設方法和私有方法使用
1.介面不能直接使用,只能用乙個類來實現介面( implements )
public
class 類名 implements 介面名(
)
2.介面的實現類必須重寫介面的多有方法,介面沒有構造方法,抽象類有構造方法
3.通過實現類物件呼叫介面的抽象方法
實現類實現介面必須重寫介面中所有的抽象方法
public
default
void 方法名(
)//供給子類呼叫或者只能選擇其中之一
1.實現類重寫抽象方法
2.重寫預設方法不可以省略default
3.如果沒有沖洗而預設方法就是繼承了
4.實現類實現多個介面,那麼遇到預設方法重名就必須重寫
public
static
void 方法名(
)
1.靜態方法是屬於類的,可以通過介面名呼叫 介面名.靜態方法名()
private
void 方法名(
)
1.私有方法只有預設方法才能使用它
2.私有靜態方法 預設方法和靜態方法都可以使用它
3.如果乙個介面有很多預設方法,可以抽取出來
1.重寫的標記 @override
如果父類中的成員方法和介面種的抽象方法重名,那麼就優先執行父類中成員方法的繼承
public
class 類名 implements 介面1
, 介面2()
1.制定規則和格式
2.高內聚,低耦合,方便維護強制要求每個方法單獨實現
3.擴充套件原有功能
1.都含有抽象方法,可以被子類重寫
2.不能被直接例項化
3.只能被實現和繼承,位於繼承的頂端
1.抽象類含有普通成員方法,介面不含有
2.乙個類只能繼承乙個抽象類,但是能夠實現很多介面
3.類與類之間單繼承,介面與介面之間實現
4.抽象類有構造方法,介面沒有構造方法
介面,抽象類和抽象方法
1.定義介面 介面使用 inte ce 關鍵字宣告,它與類的宣告類似。介面宣告預設 是 public 的。通常介面命名已i字母開頭。inte ce 介面名 2.介面繼承介面 多個介面用,號進行區分 inte ce 介面名 繼承的介面名 3.類實現介面 訪問修飾符 class 類名 介面名 4.乙個類...
抽象類,抽象方法和介面
抽象類 抽象類是一種模板模式,為所有子類提供乙個通用模板,子類可以在這個模板基礎上進行擴充套件。通過抽象類,可以避免子類設計的隨意性。通過抽象類,我們可以做到嚴格限制子類的設計,使子類之間更加通用。抽象類的要點 public abstract class animal class student e...
抽象方法和抽象類 介面
抽象方法 使用abstract修飾的方法,沒有方法體,只有宣告。定義的是一種 規範 就是告訴子類必須要給抽象方法提供具體的實現。抽象類 包含抽象方法的類就是抽象類。通過abstract方法定義規範,然後要求子類必須定義具體實現。通過抽象類,我們就可以做到嚴格限制子類的設計,使子類之間更加通用。抽象類...