当前位置: 首页 > 科技观察

Java实现接口的三种方式你知道吗?

时间:2023-03-12 22:45:02 科技观察

本文介绍了Java中接口的三种实现方式:常规实现、匿名内部类和Lambda表达式实现。希望已经看懂的同学可以再复习一遍,不懂的同学可以从中受益!Java中接口最常见的实现方法同学们都会知道,Java中实现接口的方法通常是这样的:defineinterfacedefinitionclassimplementinterfaceclassrewrite接口中的方法创建一个类对象,调用重写后的方法代码如下://定义一个接口publicinterfaceITest{publicvoidfunc1();}//类实现接口publicclassCTestimplementsITest{@Overridepublicvoidfunc1(){System.out.println("Thisisfunc1");}}//在调用类中,调用方法func1()CTestct=newCTest();ct.func1();通过匿名内部类实现匿名内部类顾名思义,类就是没有名字的内部类,通常用于简化代码编写。使用匿名内部类还有一个前提条件:只有存在继承和实现关系时才能使用!话不多说,直接上匿名内部类实现接口的代码//定义一个接口publicinterfaceITest{publicvoidfunc1();}//调用类中直接实现的接口中定义的方法,然后直接调用ITestit1=newITest(){@Overridepublicvoidfunc1(){System.out.println("Thisisfunc1byanonymous");}};it1.func1();//或者写成:newITest(){@Overridepublicvoidfunc1(){System.out.println("Thisisfunc1byanonymous");}}.func1()//如果需要接口中的两个方法,这种写法不够友好,因为一次只能调用一个方法。可以看到上面的代码直接new了接口ITest(),然后重写了方法func1。在接口中调用方法的过程被调用大大优化!通过匿名内部类,只需要定义接口(ITest),不需要定义这个接口的具体实现类(CTest)。所以看到接口new了然后直接实现了里面的方法就不要惊讶了。这只是内部类实现接口的一种方式。通过lambda表达式实现Java8Lambda表达式可以简化接口实现代码的编写,只用一种方法。注意:这一点在只有一种方法的界面中特别强调!否则会提示如下错误:Multiplenon-overridingabstractmethodsfoundininterface***代码实现如下://DefineaninterfacepublicinterfaceITest{publicvoidfunc1();}//调用定义的方法在类中直接实现的接口中,然后直接调用ITestit2=()->{System.out.println("Thisisfunc1byLambda");};it2.func1();以上是我对java实现接口的三种方式的总结。