Java超详细讲解接口的实现与用法

 更新时间:2022年04月28日 09:34:24   作者:orangemilk_  
Java接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为

1.接口的定义

接口是一种特殊的抽象类,是Java提供的一个重要的功能,与抽象类不同的是:

  • 接口的所有数据成员都是静态的且必须初始化。
  • 接口中的所有方法必须都是抽象方法,不能有一般的方法。

[public] interface 接口名称 [extends  父接口名列表]
{
    [public] [static] [final]数据类型 成员变量名 = 常量;
    ...
    [public][abstract]返回值数据类型 方法名(参数表);
    ...

其中,成员方法必须都是抽象方法。接口定义的[ ]中的修饰符可以省略,省略后默认为以上访问权限。

---------------🍁分割线🍁---------------

2.接口的实现

接口和抽象类一样不能用来实例化对象,必须借用接口的特征创建出来一个新的类,然后用新的类来实例化对象。

  • 利用接口创建新的类的过程称为接口的实现。
  • 实现一个接口的过程使用implements关键字。

class 类名称 implements 接口名表
{
    ...

  • 如果实现某接口的类不是抽象类,那么它必须实现指定接口的所有抽象方法。
  • 类在实现接口的方法时必须显式的使用pulic访问权限修饰符,子类覆盖父类方法时不可以缩小父类方法的访问权限范围。

---------------🍁分割线🍁---------------

3.接口的引用

接口可以作为一种引用类型来使用,任何实现该接口的类实例化的对象都可以储存在该接口类型的变量中,通过这些变量访问类所实现的接口中的方法。

---------------🍁分割线🍁---------------

4.接口的继承

当然啦!接口和类一样也可以使用继承派生出来新的类。也可以通过extends关键字来实现,被继承的接口称为父接口,派生出来的新接口称为子接口。但是不同的是,一个子接口可以同时有多个直接父接口。它们之间用逗号分隔。子接口继承父接口的所有变量和方法。

如果子接口中定义了和父接口同名的常量,父接口中的常量被隐藏,如果时方法,则被覆盖。

interface A{
    abstract void print1();
}
interface B extends A{
    abstract void print2();
}
class C implements B{
    public void print1(){
        System.out.print("Hello");
    }
    public void print2(){
        System.out.print("World");
    }
}
public class Print{
    public static void main(String[] args){
        B b=new C();
        b.print1();
        b.print2();
    }
}

其中B接口是A接口的直接父接口,C类实现B接口,覆盖B接口中的所有的抽象方法。Print类是主类,定义接口的引用指向实现它的类的实例化对象,访问类所实现的接口中的方法。(接口作为引用数据类型使用)

---------------🍁分割线🍁---------------

5.利用接口实现多重继承

由于Java不支持多重继承,所以可以利用接口实现类似于多重继承的机制,同时规避了C++多重继承中存在很多歧义的问题,使代码更加简洁,逻辑清晰,安全可靠。一个类只能有一个直接父类,但是它可以同时实现多个接口,可以把接口理解为类,即实现了Java类的多重继承。

//filename:Cylinder.java
interface Face1{
    final double PI=3.14;
    abstract double area();
}
interface Face2{
    abstract void volume();
}
public class Cylinder implements Face1,Face2{
    private double radius;
    private int height;
    public Cylinder(double r,int h){
        radius=r;
        height=h;
    }
    public double area(){
        return PI*radius*radius;
    }
    public void volume(){
        System.out.print("圆柱体的体积="+this.area()*height);
    }
    public static void main(String[] args){
        Cylinder volu=new Cylinder(5.0,2);
        volu.volume();
    }
}
//圆柱体的体积=157.0

到此这篇关于Java超详细讲解接口的实现与用法的文章就介绍到这了,更多相关Java接口内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Spring Boot ActiveMQ如何设置访问密码

    Spring Boot ActiveMQ如何设置访问密码

    这篇文章主要介绍了Spring Boot ActiveMQ如何设置访问密码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-07-07
  • Java设计模式之策略模式案例详解

    Java设计模式之策略模式案例详解

    策略模式(Strategy Pattern)定义了一组同类型的算法,在不同的类中封装起来,每种算法可以根据当前场景相互替换,从而使算法的变化独立于使用它们的客户端即算法的调用者
    2022-07-07
  • java打包成jar并执行jar包中指定的main方法

    java打包成jar并执行jar包中指定的main方法

    这篇文章主要介绍了如何将java打包成可执行的jar,并执行jar包中指定的main方法的相关资料,文中给出了详细的示例代码,对大家具有一定的参考价值,需要的朋友们下面来一起看看吧。
    2017-03-03
  • Spring AOP 的组成和实现

    Spring AOP 的组成和实现

    这篇文章主要介绍了Spring AOP 的组成和实现,AOP 是一种思想,Spring AOP 是这种思想的具体实现,本文结合实例代码给大家介绍的非常详细,需要的朋友可以参考下
    2023-07-07
  • Java 8 Stream Api 中的 map和 flatMap 操作方法

    Java 8 Stream Api 中的 map和 flatMap 操作方法

    Java 8提供了非常好用的 Stream API ,可以很方便的操作集合。今天通过这篇文章给大家分享Java 8 Stream Api 中的 map和 flatMap 操作方法,需要的朋友可以参考下
    2019-11-11
  • Hadoop多Job并行处理的实例详解

    Hadoop多Job并行处理的实例详解

    这篇文章主要介绍了Hadoop多Job并行处理的实例详解的相关资料,希望通过本文能帮助到大家,需要的朋友可以参考下
    2017-10-10
  • SpringBoot使用SSE进行实时通知前端的实现代码

    SpringBoot使用SSE进行实时通知前端的实现代码

    这篇文章主要介绍了SpringBoot使用SSE进行实时通知前端,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-06-06
  • ssm框架+PageHelper插件实现分页查询功能

    ssm框架+PageHelper插件实现分页查询功能

    今天小编教大家如何通过ssm框架+PageHelper插件实现分页查询功能,首先大家需要新建一个maven工程引入jar包,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2021-06-06
  • 详解springMVC之与json数据交互方法

    详解springMVC之与json数据交互方法

    本篇文章主要介绍了详解springMVC之与json数据交互方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-05-05
  • JVM的基本介绍以及垃圾回收

    JVM的基本介绍以及垃圾回收

    垃圾回收(Garbage Collection,GC),顾名思义就是释放垃圾占用的空间,防止内存泄露,这篇文章主要给大家介绍了关于JVM垃圾回收的相关资料,需要的朋友可以参考下
    2021-09-09

最新评论