欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

Java接口的概述与特征

时间:2023-07-29

在大家了解了继承以后,都知道了继承的特点。

1:单一继承(一个儿子只能有一个亲爹)

2:多层继承(儿子继承亲爹,亲爹继承爷爷)

因此,继承的缺点也就显而易见了。Java语言的继承是单一继承!!

于是乎,Java语言为了解决单一继承问题,给我们提供了一种机制用来解决该问题-------接口

接口

接口是一个比抽象类还要抽象的类,它里面的所有方法都是抽象方法,且只含有常量和抽象方法,可以称它是抽象方法与常量值的集合

接口所用的关键字interface

接口与类的关系是实现关系,不是继承,这是我们又有了一个关键字implements(实现),详细用法下面会讲

重点!!!定义接口类的格式  interface  接口名{

                                        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        [方法体]

                ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​    }

接下来,我们来用一个例子来帮大家深入理解(比尔盖茨例)

需求:比尔盖茨既是一个程序员,又是一位老板,身为程序员有敲代码的方法,身为老板有管理的方法,现在我们应该如何做,来实现这两个方法呢?

分析:由需求我们不难想到创建一个比尔盖茨类,一个程序员类,一个老板类,让他既可以由程序员类里的方法,又可以有老板类里面的方法。怎么做?继承?可是要有两个类里的方法呢。那么我们就想到了我们可以继承一个类,再去实现另一个类,即我们的接口。

代码如下

//main方法类public class jichengDemo {public static void main(String [] args){ //创建对象BillGates gates = new BillGates(); //敲代码方法gates.code(); //管理方法gates.manage();}}//定义老板类(作为接口) interface Boss{ //抽象方法!! //管理方法public void manage();}//定义程序员类(作为父类)class Programmer { //敲代码方法public void code(){System.out.println("敲代码");}}//定义比尔盖茨类(作为子类)class BillGates extends Programmer implements Boss{ //重写接口类的抽象方法(必须!!)public void manage(){System.out.println("管理");}}

//结果敲代码管理

这是我们便完成了需求。

当然我们也可以把程序员类也定义为接口,这便是接口的多实现特征

代码如下

public class jichengDemo1 {public static void main(String [] args){BillGates gates = new BillGates();gates.code();gates.manage();}}interface Boss{public void manage();}interface Programmer {public void code();}//实现多接口class BillGates implements Boss,Programmer{public void manage(){System.out.println("管理");} public void code(){ System.out.println("敲代码"); }}

多实现定义格式   class BillGates implements Manager,Programmer{[方法体]}

现在,我们已经基本了解了接口的使用,接下来我们聊聊接口的成员特点

①接口里面的方法只能是抽象方法

②抽象方法默认使用public abstract 关键字修饰 (这两个关键字可以不写,但是强烈建议在实际开发的过程中写上,要不然会产生云里雾里的感觉)

③接口里面只能有常量,不能有变量

interface People{ public static final int NUM = 10;}

④接口里面常量默认使用public static final关键字修饰

因为使用了static 关键字的缘故,我们可以用类名调用上面People的常量

System.out.pritnln(People.NUM);

结果

10

学会了接口,我们还要了解一下接口与类之间的各种关系

1:类与类之间的关系(继承关系) 单一继承和多层继承

2:接口与接口之间的关系(继承关系)多继承,且不需要重写父类接口的抽象方法,具体读者自行书写,这里不演示了

//接口的多继承interface a{}interface b{}interface interc extends intera,interb{}

3:接口与类之间的关系(实现关系)多实现(一个儿子可以有无数个干爹)

最后我们来讲一下接口的优点(欢迎补充!!)

1:类与接口之间的多实现关系打破了继承的局限性

2:接口对外提供了规则

3:降低了程序的耦合性(可以实现模块化开发,定义好规则每个人实现自己的模块,提高了开发效率)

希望读者看到这篇文章能够有所启发,希望能帮到大家,谢谢!!!  /手动狗头emoji

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。