接口中的默認(rèn)方法
Java 8中允許接口中包含具有具體實(shí)現(xiàn)的方法栋猖,該方法稱為 “默認(rèn)方法” 净薛,默認(rèn)方法使用** default 關(guān)鍵字修飾**。
例如:
image.png
接口默認(rèn)方法的”類優(yōu)先”原則
若一個接口中定義了一個默認(rèn)方法蒲拉,而另外一個父類或接口中 又定義了一個同名的方法時
-
選擇父類中的方法肃拜。
- 如果一個父類提供了具體的實(shí)現(xiàn),那么 接口中具有相同名稱和參數(shù)的默認(rèn)方法會被忽略雌团。
- 接口沖突燃领。
- 如果一個父接口提供一個默認(rèn)方法,而另一個接 口也提供了一個具有相同名稱和參數(shù)列表的方法(不管方法 是否是默認(rèn)方法)锦援,那么必須覆蓋該方法來解決沖突
image.png
接口中的靜態(tài)方法
Java8 中猛蔽,接口中允許添加靜態(tài)方法。
例如:
image.png
代碼演示
默認(rèn)方法
package com.www.java8.inter2;
/**
* 接口中的默認(rèn)方法
* <p>
*
* @author Www
* <p>
* 郵箱 483223455@qq.com
* <p>
* 時間: 2022/8/13 15:58 星期六
* <p>
*/
public interface MyFun {
/**
* 默認(rèn)方法
*
* @return
*/
default String getName() {
return "www";
}
}
靜態(tài)方法
package com.www.java8.inter2;
/**
* <p>
*
* @author Www
* <p>
* 郵箱: 483223455@qq.com
* <p>
* 創(chuàng)建時間: 2022/8/13 16:13 星期六
* <p>
*/
public interface MyInterface {
/**
* 默認(rèn)方法
*
* @return
*/
default String getName() {
return "MyInterface";
}
/**
* 靜態(tài)方法
*/
static void show(){
System.out.println(" MyInterface.show()");
}
}
package com.www.java8.inter2.impl;
import com.www.java8.inter2.MyFun;
import com.www.java8.inter2.MyInterface;
/**
* <p>
*
* @author Www
* <p>
* 郵箱: 483223455@qq.com
* <p>
* 創(chuàng)建時間: 2022/8/13 16:03 星期六
* <p>
*/
public class SubClass/* extends MyClass */implements MyFun , MyInterface {
/**
* 默認(rèn)方法 : 可以擁有方法體
*
* @return
*/
@Override
public String getName() {
return MyInterface.super.getName();
}
}