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

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

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

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

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

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

定義接口

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

類中重寫接口里的方法

創(chuàng)建類對象

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

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

  1. //定義一個接口 
  2. public interface ITest { 
  3.     public void  func1(); 
  4.  
  5. //類實現(xiàn)該接口 
  6. public class CTest implements ITest { 
  7.     @Override 
  8.     public void func1() { 
  9.         System.out.println("This is func1"); 
  10.  
  11.     } 
  12.  
  13. //調(diào)用類中,調(diào)用方法func1() 
  14.   CTest ct=new CTest(); 
  15.    ct.func1(); 

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

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

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

  1. //定義一個接口 
  2. public interface ITest { 
  3.     public void  func1(); 
  4.  
  5. //調(diào)用類中直接實現(xiàn)接口中定義的方法,然后直接調(diào) 
  6. ITest it1 = new ITest() { 
  7.     @Override 
  8.     public void func1() { 
  9.         System.out.println("This is func1 by anonymous"); 
  10.     } 
  11. }; 
  12. it1.func1(); 
  13. //或者寫成: 
  14. new ITest() { 
  15.     @Override 
  16.     public void func1() { 
  17.         System.out.println("This is func1 by anonymous"); 
  18.     } 
  19. }. func1()  
  20. //如果需要接口中的兩個方法,這種寫法則不夠友好,因為一次只能調(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)如下:

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

 

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

2022-01-20 08:38:02

Java接口Lambda

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

單點登錄代碼前端

2021-11-05 21:33:28

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

2022-11-03 08:44:24

代理模式Java設計模式

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

2024-08-13 08:25:16

C#外部程序方式

2019-11-20 18:52:24

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

2021-03-07 10:17:40

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

2024-10-14 09:20:09

異步流式接口
點贊
收藏

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