前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >浅析Java语言中接口的特点和继承相关知识

浅析Java语言中接口的特点和继承相关知识

作者头像
Java进阶者
发布2023-11-29 15:15:50
1390
发布2023-11-29 15:15:50
举报
文章被收录于专栏:Java进阶学习交流

山寺钟鸣昼已昏,渔梁渡头争渡喧。

前面几篇文章用Java带大家一起了解Java的部分基础知识,感兴趣的小伙伴们可以去学习下了,一篇文章带你了解Java类的设计和封装及类成员的访问控制一篇文章带你了解this关键字和单例模式Java基础入门篇——面向对象和类的定义,这篇文章带大家一起学习下Java知识中的接口及其继承知识,一起来看看吧。

一、接口的继承

1.定义一个接口使用extends关键字来继承另一个接口,这就是接口的继承。

2.语法:

代码语言:javascript
复制
[修饰符] interface 接口名 extends 父类接口1, 父类接口2, …{
        定义常量0个或多个;
        定义抽象方法0个或多个;
}

3.如何实现接口的继承关系例子

代码语言:javascript
复制
//定义Printer接口
interface Printer{
    int max_line=20;//定义全局常量
    void printRun();//定义抽象方法pirntRun()
    void printData();//定义抽象方法printData()
}
//定义了Autopriner接口,然后继承Printer接口
interface Autoprinter extends Printer{//接口继承
    void autoPrint();//定义抽象方法autoPrint()方法
}

//Colorprinter类实现Printer接口
class Colorprinter implements Autoprinter{
    //实现printRun()方法
    public void printRun(){
        System.out.println("彩色打印机正在启动");
  }
    //实现printData()方法
    public void printData(){
        System.out.println("彩色打印机正在打印中");
  }
    //实现autoPrint()方法
    public void autoPrint(){
        System.out.println("彩色打印机自动打印");
  }

}
public class p27 {
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Colorprinter c=new Colorprinter();//创建Colorprinter类的实例对象
        c.printRun();//调用Colorprinter类的printRun()方法
        c.printData();//调用Colorprinter类的printData()方法
        c.autoPrint();//调用Colorprinter类的autoPrint()方法
  }
}

输出的结果是:

代码语言:javascript
复制
彩色打印机正在启动
彩色打印机正在打印中
彩色打印机自动打印

从上面的代码中,首先是定义了Printer接口,定义全局常量和两个方法分别是printRun()和printData(),然后再定义一个Autopriner接口来继承Printer接口,再Colorprinter类实现Printer接口,此时,Autopriner接口有三个抽象方法,通过Colorprinter类实例化对象然后调用对应的方法。

二、接口的特点

1.接口里的方法是抽象的,不可以去实例化对象。

2.如果实现某接口的类是抽象类,那么可以不实现该接口的所有方法。对于这个抽象类任何一个不是抽象类的子类来说,就需要实现所有抽象方法。

3.一个类使用implements关键字实现多个接口

例如:

代码语言:javascript
复制
//定义A接口
interface A{
    int MAX=1;//定义全局常量
    void testA();//定义抽象方法testA()
}
//定义B接口
interface B{
    int MAX=2;//定义全局常量
    void testB();//定义抽象方法testB()
}
//定义一个类实现A,B接口
class C implements A,B{
    int MAX=3;//定义全局常量
    //实现testB()方法
    @Override
    public void testB() {
        // TODO Auto-generated method stub
        System.out.println("我是B");
}
    //实现testA()方法
    @Override
    public void testA() {
        // TODO Auto-generated method stub
        System.out.println("我是A");
  }
}
public class p28 {
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        C c=new C();//创建C类实例对象
        c.testA();//调用C类的testA()方法
        c.testB();//调用C类的testB()方法
  }
}

运行的结果是:

代码语言:javascript
复制
我是A
我是B

从上面代码中,定义了A和B接口,在C类中使用implements关键字实现A和B的接口的方法,实例化对象并调用对应的方法。

4.一个接口使用extends关键字实现继承多个接口

例如:

代码语言:javascript
复制
//定义A接口
interface A{
    int MAX=1;//定义全局常量
    void testA();//定义抽象方法testA()
}
//定义B接口
interface B{
    int MAX=2;//定义全局常量
    void testB();//定义抽象方法testB()
}
//定义接口继承A,B接口
interface C extends A,B{
    int MAX=3;//定义全局常量
    void testC();//定义testC()方法
}
public class p29 {
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        System.out.println(A.MAX);
        System.out.println(B.MAX);
        System.out.println(C.MAX);
  }
}

运行的结果是:

代码语言:javascript
复制
1
2
3

5.一个类在实现某接口的抽象方法,就需要使用一样的方法头。

6.如果实现某接口的类不是抽象类,那么类的定义部分需要实现指定接口的所有抽象方法。

三、总结

本文主要介绍了接口的继承和接口的特点。

接口的继承是定义一个接口使用extends关键字来继承另一个接口,通过如何实现接口的继承例子来帮助大家的理解这个用法。

一个类使用implements关键字实现多个接口,一个接口使用extends关键字实现继承多个接口。

希望大家通过本文的学习,对你有所帮助!

------------------- End -------------------

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-11-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Java进阶学习交流 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、接口的继承
    • 二、接口的特点
      • 三、总结
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档