继承父类并实现多个接口

本文深入解析Java接口的使用规范,包括接口的特点、如何实现多个接口、抽象方法的重写规则及默认方法的冲突解决策略。此外,还探讨了实现类与父类方法冲突时的优先级问题。

使用接口时注意:

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();
    }
}

显示:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值