自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Java中實(shí)現(xiàn)接口的三種方式您造嗎?

開(kāi)發(fā) 前端
本文介紹了Java中實(shí)現(xiàn)接口的三種方式:常規(guī)實(shí)現(xiàn)方式、匿名內(nèi)部類(lèi)和 Lambda表達(dá)式實(shí)現(xiàn)方式。希望已經(jīng)了解的同學(xué)可以重新溫習(xí)一下,不了解的同學(xué)則從中受益!

本文介紹了Java中實(shí)現(xiàn)接口的三種方式:常規(guī)實(shí)現(xiàn)方式、匿名內(nèi)部類(lèi)和 Lambda表達(dá)式實(shí)現(xiàn)方式。希望已經(jīng)了解的同學(xué)可以重新溫習(xí)一下,不了解的同學(xué)則從中受益!

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

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

定義接口

定義類(lèi)實(shí)現(xiàn)接口

類(lèi)中重寫(xiě)接口里的方法

創(chuàng)建類(lèi)對(duì)象

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

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

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

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

}
}

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

通過(guò)匿名內(nèi)部類(lèi)實(shí)現(xiàn)

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

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

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

//調(diào)用類(lèi)中直接實(shí)現(xiàn)接口中定義的方法,然后直接調(diào)
ITest it1 = new ITest() {
@Override
public void func1() {
System.out.println("This is func1 by anonymous");
}
};
it1.func1();
//或者寫(xiě)成:
new ITest() {
@Override
public void func1() {
System.out.println("This is func1 by anonymous");
}
}. func1()
//如果需要接口中的兩個(gè)方法,這種寫(xiě)法則不夠友好,因?yàn)橐淮沃荒苷{(diào)用一個(gè)方法

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

通過(guò)lambda表達(dá)式來(lái)實(shí)現(xiàn)

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

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

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

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

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

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

責(zé)任編輯:姜華 來(lái)源: 今日頭條
相關(guān)推薦

2022-01-17 08:19:51

Javascript 接口前端

2011-06-03 11:53:06

Spring接口

2024-07-01 12:42:58

2018-04-02 14:29:18

Java多線程方式

2011-07-22 17:22:20

Spring

2014-12-31 17:42:47

LBSAndroid地圖

2021-06-24 08:52:19

單點(diǎn)登錄代碼前端

2021-11-05 21:33:28

Redis數(shù)據(jù)高并發(fā)

2022-11-03 08:44:24

代理模式Java設(shè)計(jì)模式

2010-03-12 17:52:35

Python輸入方式

2023-12-04 09:31:13

CSS卡片

2023-04-11 08:10:46

JavaScriptnull操作符

2024-07-08 09:03:31

2010-09-07 16:31:27

CSS

2012-07-17 09:16:16

SpringSSH

2024-05-27 00:20:00

2019-11-20 18:52:24

物聯(lián)網(wǎng)智能照明智能恒溫器

2024-08-13 08:25:16

C#外部程序方式

2021-03-07 10:17:40

RDMA網(wǎng)絡(luò)傳輸網(wǎng)絡(luò)協(xié)議

2024-10-14 09:20:09

異步流式接口
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)