JAVA?兩個(gè)類(lèi)同時(shí)實(shí)現(xiàn)同一個(gè)接口的方法(三種方法)
在Java中,兩個(gè)類(lèi)同時(shí)實(shí)現(xiàn)同一個(gè)接口是非常常見(jiàn)的。接口定義了一組方法,實(shí)現(xiàn)接口的類(lèi)必須提供這些方法的具體實(shí)現(xiàn)。以下將展示如何實(shí)現(xiàn)這一要求,并提供具體的代碼示例。
示例接口
首先,定義一個(gè)簡(jiǎn)單的接口,比如一個(gè)表示動(dòng)物的接口,它有一個(gè)方法makeSound:
public interface Animal {
void makeSound();
}1. 方法一:兩個(gè)類(lèi)分別實(shí)現(xiàn)接口
這是最直接的方法,每個(gè)類(lèi)分別提供接口方法的實(shí)現(xiàn)。
1.1 類(lèi)1:Dog
public class Dog implements Animal {
@Override
public void makeSound() {
System.out.println("Dog says: Bark");
}
}1.2 類(lèi)2:Cat
public class Cat implements Animal {
@Override
public void makeSound() {
System.out.println("Cat says: Meow");
}
}1.3 測(cè)試代碼
接下來(lái),可以通過(guò)以下測(cè)試代碼來(lái)演示接口的實(shí)現(xiàn):
public class Main {
public static void main(String[] args) {
Animal myDog = new Dog();
Animal myCat = new Cat();
myDog.makeSound();
myCat.makeSound();
}
}2. 方法二:使用匿名內(nèi)部類(lèi)
如果不想創(chuàng)建具體的類(lèi),也可以使用匿名內(nèi)部類(lèi)來(lái)實(shí)現(xiàn)接口。
public class Main {
public static void main(String[] args) {
Animal myDog = new Animal() {
@Override
public void makeSound() {
System.out.println("Dog says: Bark");
}
};
Animal myCat = new Animal() {
@Override
public void makeSound() {
System.out.println("Cat says: Meow");
}
};
myDog.makeSound();
myCat.makeSound();
}
}3. 方法三:使用Lambda表達(dá)式(適用于函數(shù)式接口)
如果接口是一個(gè)函數(shù)式接口(即只有一個(gè)抽象方法的接口),可以使用Lambda表達(dá)式來(lái)實(shí)現(xiàn)它。
3.1 修改接口為函數(shù)式接口
為了使用Lambda表達(dá)式,接口可以保持不變,因?yàn)樗呀?jīng)是一個(gè)函數(shù)式接口(只有一個(gè)方法)。
3.2 使用Lambda表達(dá)式
public class Main {
public static void main(String[] args) {
Animal myDog = () -> System.out.println("Dog says: Bark");
Animal myCat = () -> System.out.println("Cat says: Meow");
myDog.makeSound();
myCat.makeSound();
}
}4.總結(jié)
通過(guò)上述三種方法,可以看到如何在Java中讓兩個(gè)類(lèi)同時(shí)實(shí)現(xiàn)同一個(gè)接口。每種方法都有其適用場(chǎng)景:
(1)直接實(shí)現(xiàn)接口:適用于標(biāo)準(zhǔn)的面向?qū)ο缶幊獭?/p>
(2)匿名內(nèi)部類(lèi):適用于需要簡(jiǎn)單實(shí)現(xiàn)接口但不想創(chuàng)建具體類(lèi)的場(chǎng)景。
(3)Lambda表達(dá)式:適用于函數(shù)式接口,可以使代碼更簡(jiǎn)潔。
到此這篇關(guān)于JAVA 兩個(gè)類(lèi)同時(shí)實(shí)現(xiàn)同一個(gè)接口的方法的文章就介紹到這了,更多相關(guān)java兩個(gè)類(lèi)同時(shí)實(shí)現(xiàn)同一個(gè)接口內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
spring cloud 的監(jiān)控turbine-rabbitmq的示例
這篇文章主要介紹了spring cloud 的監(jiān)控turbine-rabbitmq的示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-05-05
java 實(shí)現(xiàn)回調(diào)代碼實(shí)例
本文主要介紹Java的回調(diào)機(jī)制,并附實(shí)例代碼以供大家參考學(xué)習(xí),有需要的小伙伴可以看下2016-07-07
springboot配合Thymeleaf完美實(shí)現(xiàn)遍歷功能
Thymeleaf顯然是一個(gè)開(kāi)發(fā)頁(yè)面的技術(shù),現(xiàn)在各種前端技術(shù)層出不窮,比如現(xiàn)在主流的Vue、React、AngularJS等。這篇文章主要介紹了springboot配合Thymeleaf完美實(shí)現(xiàn)遍歷,需要的朋友可以參考下2021-09-09
如何修改覆蓋spring boot默認(rèn)日志策略logback詳解
這篇文章主要給大家介紹了關(guān)于如何修改覆蓋spring boot默認(rèn)日志策略logback的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2018-10-10
SpringCloud Bus 消息總線(xiàn)的具體使用
這篇文章主要介紹了SpringCloud Bus 消息總線(xiàn)的具體使用,詳細(xì)的介紹了什么是消息總線(xiàn)以及具體配置,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-12-12
詳解Spring boot+CXF開(kāi)發(fā)WebService Demo
這篇文章主要介紹了詳解Spring boot+CXF開(kāi)發(fā)WebService Demo,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2017-05-05
Java中通過(guò)Class類(lèi)獲取Class對(duì)象的方法詳解
這篇文章主要給大家介紹了關(guān)于Java中通過(guò)Class類(lèi)獲取Class對(duì)象的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用java具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面跟著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2017-08-08

