继承接口并实现多个接口

使用接口的时候注意,需要注意:

1.接口是不存在静态代码块或者构造方法的

知识点回忆:静态代码块的典型用途--用来一次性地对静态成员变量进行赋值。当第一次用到本类时,静态代码块执行唯一的一次,优于非静态代码块。

不能写构造方法,写了就能new了。

2.一个类的直接父类是唯一的,但是一个类可以同时实现多个接口。

格式:

public clas MyInterfaceImpl implements MyInterfaceA,MyInterfaceB{

     // 覆盖重写所有抽象方法

}

public interface MyInterfaceA {
    public abstract void methodA();
}
public interface MyInterfaceB {
    public abstract void methodB();
}
public class Demo06Interface implements MyInterfaceA,MyInterfaceB{
    @Override
    public void methodA() {
        System.out.println("覆盖重写了A抽象方法");
    }

    @Override
    public void methodB() {
        System.out.println("覆盖重写了B抽象方法");
    }

}

3.如果实现类所实现的多个接口当中,存在重复的抽象方法,那么只需要覆盖重写一次即可。

@Override
public void method() {
    System.out.println("覆盖重写了A、B接口都有的抽象方法");
}

4.如果实现类没有覆盖重写所有接口当中的所有抽象方法,那么实现类就必须是一个抽象类。

5.如果实现类所实现的多个接口当中,存在重复的默认方法,那么实现类一定要对冲突的默认方法进行覆盖重写。

A、B

public default void methodDefault(){
}

实现类:

@Override
public void methodDefault() {
    System.out.println("覆盖重写了A、B冲突的抽象方法");
}

6.一个类如果直接父类当中的方法,和接口当中的默认方法产生了冲突,优先用父类当中的方法。

public class Fu {
    public void method(){
        System.out.println("父类的成员方法");
    }
}
public interface MyInterface {
    public default void method(){
        System.out.println("接口的默认方法");
    }
}
public class Zi extends Fu implements MyInterface{
}
Zi zi = new Zi();
zi.method();

运行截图:

猜你喜欢

转载自blog.csdn.net/wardo_l/article/details/113851600
今日推荐