6.5继承父类并实现多个接口

2019-03-26  本文已影响0人  十六只猴子王

使用接口时的,需要注意

  1. 接口时没有静态代码块或者构造方法的
public interface MyInterfaceA {
    //错误写法!接口不能有静态代码块
//    static {
//
//    }
    //错误写法!接口不能有构造方法
//    public  MyInterfaceA(){
//
//   }
    public abstract void methodB();
    public  abstract void methodAbs();

    public  default  void methodDefault(){
        System.out.println("默认方法AAA");
    }
}
  1. 一个类的直接父类时唯一的,但是一个类可以同时实现多个接口
    格式:

public class MyInterfaceImpl implements MyInterfaceA,MyInterfaceB{//覆盖重写所有抽象方法}

3.如果实现类所实现的多个接口当中,存在重复的抽象方法,那么只需要覆盖重写一次即可。
4.如果实现类没有覆盖重写所有接口当中的所有抽象方法,那么实现类必须是一个抽象类
5.如果实现类所实现的多个接口当中,存在重复的默认方法,那么实现类一定要对冲突的默认方法进行覆盖重写。

package demo06;

public interface MyInterfaceB {
    public abstract void methodA();
    public  abstract void methodB();

    public  default  void methodDefault(){
        System.out.println("默认方法BBB");
    }
}
package demo06;

public class MyInterfaveImpl implements MyInterfaceB,MyInterfaceA{

    @Override
    public void methodA() {
        System.out.println("覆盖重写了A方法");
    }

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

    @Override
    public void methodAbs() {
        System.out.println("覆盖重写了AB都有的抽象方法");
    }
    @Override
    public void methodDefault() {
        System.out.println("对多个接口中冲突的默认方法进行重写");
    }
}

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

public interface MyInterface {
    public  default  void method(){
        System.out.println("接口的默认方法");
    }
}
public class Fu {
    public void  method(){
        System.out.println("父类方法");
    }
}
public class Zi extends Fu implements MyInterface{
}
public class Demo01Interface {
    public static void main(String[] args) {
        Zi zi=new Zi();
        zi.method();
    }
}

输出结果为

父类方法

上一篇 下一篇

猜你喜欢

热点阅读