日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Java中實現(xiàn)接口的三種方式您造嗎?

Java中接口最常規(guī)的實現(xiàn)方式

同學們都會知道,java中實現(xiàn)接口的方法通常如下:

定義接口

定義類實現(xiàn)接口

類中重寫接口里的方法

創(chuàng)建類對象

調(diào)用重寫后的方法

代碼實現(xiàn)如下:

//定義一個接口
public interface ITest {
public void func1();
}

//類實現(xiàn)該接口
public class CTest implements ITest {
@Override
public void func1() {
System.out.println("This is func1");

}
}

//調(diào)用類中,調(diào)用方法func1()
CTest ct=new CTest();
ct.func1();

通過匿名內(nèi)部類實現(xiàn)

匿名內(nèi)部類顧名思義也就是沒有名字的內(nèi)部類,它通常用來簡化代碼編寫。使用匿名內(nèi)部類還有個前提條件:必須存在繼承和實現(xiàn)關(guān)系的時候才可以使用!

不多說,直接上匿名內(nèi)部類實現(xiàn)接口的代碼

//定義一個接口
public interface ITest {
public void func1();
}

//調(diào)用類中直接實現(xiàn)接口中定義的方法,然后直接調(diào)
ITest it1 = new ITest() {
@Override
public void func1() {
System.out.println("This is func1 by anonymous");
}
};
it1.func1();
//或者寫成:
new ITest() {
@Override
public void func1() {
System.out.println("This is func1 by anonymous");
}
}. func1()
//如果需要接口中的兩個方法,這種寫法則不夠友好,因為一次只能調(diào)用一個方法

大家可以看到上面的代碼直接new了接口ITest(),然后重寫了方法func1,調(diào)用接口中方法的過程被大大優(yōu)化了!通過匿名內(nèi)部類只需要定義接口(ITest),無需定義這個接口的具體實現(xiàn)類(CTest)了。所以大家以后看到接口被new 然后直接實現(xiàn)里面方法的寫法時,千萬不要感到驚訝,這只是內(nèi)部類實現(xiàn)接口的方法而已。

通過lambda表達式來實現(xiàn)

Java 8 Lambda表達式在只有一個方法的接口實現(xiàn)代碼編寫中,可以起到簡化作用。

注意:這里特殊強調(diào)在只有一個方法的接口中!否則提示如下錯誤:

Multiple non-overriding abstract methods found in interface ***

代碼實現(xiàn)如下:

//定義一個接口
public interface ITest {
public void func1();
}
//調(diào)用類中直接實現(xiàn)接口中定義的方法,然后直接調(diào)
ITest it2 =()->{System.out.println("This is func1 by Lambda");};
it2.func1();

以上就是我對java中實現(xiàn)接口的三種方式的總結(jié)。


本文名稱:Java中實現(xiàn)接口的三種方式您造嗎?
網(wǎng)站地址:http://www.5511xx.com/article/djipcds.html