概述
public
inte***ce 介面名稱
含有抽象方法
public
inte***ce
inte***cename
含有靜態方法和預設方法
public
inte***ce
inte***cename
}
類與介面的關係為實現關係,即類實現介面,該類可以稱為介面的實現類,也可以成為介面的子類。實現的動作類似於繼承、格式相仿,只是關鍵字不同,實現使用【implements】關鍵字非抽象類實現介面:
1、必須重寫介面當中的所有的抽象方法
2、繼承了介面的當中的預設方法,既可以直接呼叫,也可以重寫
實現的格式例子如下:
public
class 實現類 implements 介面名稱
抽象方法的使用必須全部實現:
**例子如下:
public
inte***ce
biological
// 定義乙個實現類
public
class
animal
implements
biological
@override
public
void
sleep()
}// 定義測試類
public
class
inte***cedemo01
}// 輸出結果:
// 吃東西
// 睡覺
預設方法的使用
可以繼承,可以重寫,二選其一,但是只能通過物件來呼叫
1、繼承預設方法如下:
public
inte***ce
biological
}// 定義實現類
public
class
animal
implements
biological
// 定義測試類
public
class
inte***cedemo02
}// 輸出結果:
// 天上飛
2、重寫預設方法,**如下:
public
inte***ce
biological
}// 定義實現類
public
class
animal
implements
biological
}// 定義測試類
public
class
inte***cedemo03
}// 輸出結果:
// 自由自在的飛
靜態方法的使用
public
inte***ce
biological
}// 定義實現類
public
class
animal
implements
biological
// 定義測試類
public
class
inte***cedemo04
}// 輸出結果:
// 跑起來吧。。。
私有方法的使用(jdk1.9)
// 定義乙個介面
public
inte***ce
biological
public
default
void
funmethod1()
public
default
void
funmethod2()
}
介面的多實現public
class
classname
extends 父類 implements 介面名1
,介面2,.
....
.
抽象方法// 定義多個介面
public
inte***ce
animal
public
inte***ce
human
// 定義實現類
public
class
people
implements
animal
,human
@override
public
void
run(
)}
預設的方法:
public
inte***ce
apublic
default
void
method()
}public
inte***ce
bpublic
default
void
method()
}// 定義實現類
public
class
cimplements
a,b
}
靜態方法:
public
inte***cea}
// 定義父類
public
classd}
// 定義子類
public
class
eextends
dimplements
a// 定義測試類
public
class
testinte***cedemo06
}// 輸出結果
// ddddddddddd
介面的多繼承【了解】
public
inte***cea}
public
inte***ceb}
// 定義子介面
public
inte***ce
cextends
a,b
}
備註:子類重寫預設方法,default可以保留。
其他成員特點:
介面的好處;
介面與抽象類的區別:
相同點:
區別:
物件導向之介面
1.什麼是介面?還有另外乙個關鍵字,也可以用來定義新的資料型別 inte ce 但是,使用inte ce關鍵字定義的新資料型別,有一些特殊的要求 1.1 在這種資料型別中,只能有方法宣告,不能有方法實現。1.2 在這種資料型別中,所宣告的成員變數,預設都是public static final的。1...
物件導向多型之介面
介面就是乙個規範,能力 可以實現某乙個功能 語法 public inte ce i.able 成員 介面中的成員不允許新增訪問修飾符,預設就是 public 類中預設是 private 不允許寫具有方法體的函式,不能包含字段 欄位是存資料用的 可以包含自動屬性 介面中只能有方法 方法 屬性 索引器 ...
PHP物件導向之介面
php與大多數物件導向程式設計語言一樣,不支援多重繼承。也就是說每個類 只能繼承乙個父類。為了解決此問題,php引入了介面。介面的思想是指定了乙個實現該介面的類必須實現的一系列方法。介面是一種特殊的抽象類,抽象類是一種特殊的類,所以介面也是一種特殊的類。為什麼說介面是一種特殊的抽象類呢?如果乙個抽象...