继承父类并实现多个接口

使用接口时注意:

1.接口是没有静态代码块或者构造方法的。

package cn.itcast.day09.java.接口静态;

/**
 * @Author: Jason
 * @Date: 2019/8/3 21:36
 * @Version 1.0
 */
public interface demoInterface {
//    static {
//                   错误写法
//    }

//    public MyInterface(){     错误写法 接口不能有构造方法

//
//    }
}

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

格式:

publlic class MyInterfaceImpl implements MyInterfaceA, MyInterfaceB{

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

}

 

package cn.itcast.day09.java.接口静态;


public interface MyInterfaceA {

    public abstract void methodA();

}

package cn.itcast.day09.java.接口静态;


public interface MyInterfaceB {
    public abstract void methodB();

}
package cn.itcast.day09.java.接口静态;

public class MyInterfaceImpl  /* extends Object */ implements MyInterfaceA,MyInterfaceB {

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

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

 

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

 

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

 

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

 

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

java中继承优先于接口实现的。

package cn.itcast.day09.java.接口静态;


public interface MyInterface {
    public default void method(){
        System.out.println("接口的默认方法!");
    }
}

package cn.itcast.day09.java.接口静态;


public class Fu {
    public void method(){
        System.out.println("父类当中的方法!");
    }
}
package cn.itcast.day09.java.接口静态;


public class Zi extends Fu implements MyInterface {

}

 

测试一下:

package cn.itcast.day09.java.接口静态;


public interface demoInterface {
    public static void main(String[] args) {
        Zi zi = new Zi();
        zi.method();
    }
}

显示:

继承父类并实现多个接口_第1张图片

你可能感兴趣的:(java,se学习,编程学习技术)