溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Java8中的默認(rèn)方法和多重繼承實(shí)例分析

發(fā)布時(shí)間:2022-02-28 10:28:55 來(lái)源:億速云 閱讀:127 作者:iii 欄目:開(kāi)發(fā)技術(shù)

這篇“Java8中的默認(rèn)方法和多重繼承實(shí)例分析”文章的知識(shí)點(diǎn)大部分人都不太理解,所以小編給大家總結(jié)了以下內(nèi)容,內(nèi)容詳細(xì),步驟清晰,具有一定的借鑒價(jià)值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來(lái)看看這篇“Java8中的默認(rèn)方法和多重繼承實(shí)例分析”文章吧。

多重繼承是一些面向?qū)ο蟮挠?jì)算機(jī)編程語(yǔ)言的一個(gè)特性,其中一個(gè)對(duì)象或類可以從多個(gè)父對(duì)象或父類繼承特性和特性。

Java 8 中的默認(rèn)方法可以看作是一種多重繼承的形式(除了屬性不能被繼承)??紤]下面的示例,Button 類實(shí)現(xiàn)了兩個(gè)接口 - ClickableAccessible

Java8中的默認(rèn)方法和多重繼承實(shí)例分析

每個(gè)接口定義一個(gè)默認(rèn)方法。因此,Button 類可以從兩個(gè)接口調(diào)用方法。這就像多重繼承。

interface Clickable{
	default void click(){
		System.out.println("click");
	}
}
 
interface Accessible{
	default void access(){
		System.out.println("access");
	}
}
 
public class Button implements Clickable, Accessible {
 
	public static void main(String[] args) {
		Button button = new Button();
		button.click();
		button.access();
	}
}

如果兩個(gè)實(shí)現(xiàn)的接口都定義了一個(gè)具有相同方法簽名的默認(rèn)方法,那么實(shí)現(xiàn)類不知道使用哪個(gè)默認(rèn)方法。實(shí)現(xiàn)類應(yīng)該明確指定要使用的默認(rèn)方法或定義它自己的方法。在下面的示例中,ClickableAccessible 都定義了 print() 方法。在 Button 類中,print() 方法指定了默認(rèn)方法。

Java8中的默認(rèn)方法和多重繼承實(shí)例分析

interface Clickable{
	default void click(){
		System.out.println("click");
	}
 
	default void print(){
		System.out.println("Clickable");
	}
}
 
interface Accessible{
	default void access(){
		System.out.println("access");
	}
 
	default void print(){
		System.out.println("Accessible");
	}
}
 
public class Button implements Clickable, Accessible {
 
	public void print(){
		Clickable.super.print();
		Accessible.super.print();
	}
 
	public static void main(String[] args) {
		Button button = new Button();
		button.click();
		button.access();
		button.print();
	} 
}

默認(rèn)方法背后的主要?jiǎng)訖C(jī)是,如果在某個(gè)時(shí)候我們需要向現(xiàn)有接口添加一個(gè)方法,我們可以在不更改現(xiàn)有實(shí)現(xiàn)類的情況下添加一個(gè)方法。這樣,接口仍然兼容舊版本。這是一個(gè)很酷的功能。但是,我們應(yīng)該記住使用默認(rèn)方法的動(dòng)機(jī),并應(yīng)該保持接口和實(shí)現(xiàn)的分離。

以上就是關(guān)于“Java8中的默認(rèn)方法和多重繼承實(shí)例分析”這篇文章的內(nèi)容,相信大家都有了一定的了解,希望小編分享的內(nèi)容對(duì)大家有幫助,若想了解更多相關(guān)的知識(shí)內(nèi)容,請(qǐng)關(guān)注億速云行業(yè)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI