专注于 JetBrains IDEA 全家桶,永久激活,教程
持续更新 PyCharm,IDEA,WebStorm,PhpStorm,DataGrip,RubyMine,CLion,AppCode 永久激活教程

接口

接口(interface)

接口和类是并列的结构

定义接口

  • 定义全局常量

    static final书写时可以省略不写

    70_1.png

  • 定义抽象方法

    abstract书写时可以省略

    70_2.png

  • 接口中不能定义构造器

    接口不可以实例化

使用

  • 接口通过让类来实现(implements)的方式来使用
  • 如果实现类覆盖了接口中所有的抽象方法,则此实现类可以实例化
  • 如果实现类没有覆盖接口中所有的抽象方法,则此实现类仍为一个抽象类
  • 接口和抽象是实现,继承是重写

示例

public class Test {
    public static void main(String[] args) {
        Man man = new Man();
        System.out.println(Man.name);
        System.out.println(Man.age);
        man.show();
    }
}

interface Person{
    String name = "殷志源";
    int age = 42;
    void show();
}

class Man implements Person {

    @Override
    public void show() {
        System.out.println("上台表演");
    }
}

运行结果

70_3.png

类可以实现多个接口(多实现)

  • 弥补了Java类单继承性的局限问题
  • 格式:class AA extends BB implements CC,DD,EE{}
    • 实现多个接口时,多个接口之间用逗号隔开
    • 先写继承再写接口实现
class Woman extends Animal implements Person{

    @Override
    void eat() {
        System.out.println("女孩子喜欢喝奶茶");
    }

    @Override
    public void show() {
        System.out.println("女孩子喜欢看爱豆表演");
    }
}

注意

1、 接口与接口之间可以继承,而且可以多继承
2、 具体使用体现多态性
3、 接口实际上可以看作是一种规范

接口匿名实现类的对象

  • 创建接口的非匿名实现类的非匿名对象
    70_4.png
  • 创建接口的非匿名实现类的匿名对象
    70_5.png
  • 创建接口的匿名实现类的非匿名对象
    70_6.png
  • 创建接口的匿名实现类的匿名对象
    70_7.png

新特性(jdk8)

除了定义全局常量和抽象方法之外,还可以定义静态方法、默认方法

  • 静态方法

    接口中定义的静态方法只能通过接口调用

    70_8.png

  • 默认方法

    70_9.png

    1. 通过实现类的对象,可以调用接口中的默认方法
    2. 如果实现类重写了接口中的默认方法,调用时,仍然调用的是重写后的方法

类优先原则

  • 如果实现类(子类)继承的父类和实现的接口中声明了同名同参数的方法,那么子类在没有重写此方法的情况下,默认调用的是父类中同名同参数的方法
  • 如果实现类实现了多个接口,而多个接口中定义了同名同参数的默认方法,那么在实现类没有重写此方法的情况下,报错(接口冲突)

    若还想实现两接口,那么要求必须在实现类中重写此方法

未经允许不得转载:搜云库技术团队 » 接口

JetBrains 全家桶,激活、破解、教程

提供 JetBrains 全家桶激活码、注册码、破解补丁下载及详细激活教程,支持 IntelliJ IDEA、PyCharm、WebStorm 等工具的永久激活。无论是破解教程,还是最新激活码,均可免费获得,帮助开发者解决常见激活问题,确保轻松破解并快速使用 JetBrains 软件。获取免费的破解补丁和激活码,快速解决激活难题,全面覆盖 2024/2025 版本!

联系我们联系我们