【Java基础】关键字:interface

1.interface说明

Java中不支持多继承,但有时必须从几个类中派生出一个子类,继承它们所有的属性和方法,使用interface达到多重继承的效果。
image

interface:接口,定义一组规则,是“能不能”的关系。

继承是一个“是不是”的关系。
image

2.接口注意点

(1)接口中的所有成员变量都默认由public static final修饰,可以省略不写。

(2)接口中的所有抽象方法都默认由public abstract修饰,可以省略不写。

(3)接口中没有构造器,无法创建对象。

(4)不同接口之间可以使用extends关键字继承。

(5)一个类可以实现implements多个接口。
image

3.实现类书写方式

(1)先写extends再写implements,多个接口之间用英文逗号隔开。

(2)实现类要实现(有方法体)接口中的所有声明的方法,否则该类为抽象类。

class Student extends Person implements Runner,Fly{

    @Override
    public void start() {

    }

    @Override
    public void run() {

    }

    @Override
    public void stop() {

    }
}

实现类和接口之间存在多态性。

Runner student = new Student();
student.run();

4.JDK 8.0关于接口的新特性

(1)除了定义全局常量和抽象方法之外,还可以定义静态方法、默认方法(default修饰)。

(2)接口中的静态方法,只能通过接口来调用。

(3)通过实现类的对象,可以调用接口中的默认方法。如果实现类重写了接口中的默认方法,调用时,调用的是重写以后的方法。

(4)类优先原则:父类和接口中声明了同名同参数的默认方法,子类没有重写时,默认调用的是父类中的方法。

(5)接口冲突:实现类实现了多个接口,这多个接口中定义了同名同参数的默认方法,实现类没有重写此方法时,报错。

(6)在子类方法中调用父类或接口中被重写的方法。

    @Override
    public void stop() {
        run();  //子类自己的方法
        super.run();   //父类中的方法
        Runner.super.talk();   //接口中的默认方法
    }
posted @ 2022-09-21 18:25  植树chen  阅读(140)  评论(0编辑  收藏  举报