接口的多继承多实现

目录

  • 接口的多继承多实现
    • 多继承(接口1 extends 接口2,接口3)
    • 多实现(实现类 实现 接口1,接口2)
    • 总结
      • 1.类与类的关系
      • 2.类和接口的关系
      • 3.接口与接口的关系

多继承(接口1 extends 接口2,接口3)

package cn.tedu.inter2;
/**本类用于测试接口与类之间的复杂关系*/
public class TestRelation {
}
//1.创建接口1
interface Inter1{
 void add();//增加功能
    void delete();//删除功能
}
//2.创建接口2
interface Inter2{
    void update();//更新功能
    void find();//查询功能
}
//4.创建接口3。同时继承接口1和接口2
/**1.接口可以继承接口,并且可以多继承,多个接口之间用逗号隔开*/
interface Inter3 extends Inter1,Inter2{
}
//3.创建接口1的实现类
class Inter1Impl implements Inter1{
    @Override
    public void add() {
        System.out.println("正在马不停蹄的为您新增中...");
    }
    @Override
    public void delete() {
        System.out.println("商品已删除!");
    }
}
//5.创建接口3的实现类
class Inter33Impl implements Inter3{
    @Override
    public void add() {
        System.out.println("稍等......正在努力保存中");
    }
    @Override
    public void delete() {
        System.out.println("删除成功!");
    }
    @Override
    public void update() {
        System.out.println("小二正在马不停蹄的更新哟");
    }
    @Override
    public void find() {
        System.out.println("客观,马上就查询好了,稍等一丢丢");
    }
}

多实现(实现类 实现 接口1,接口2)

package cn.tedu.inter2;
/**本类用于测试接口与类之间的复杂关系*/
public class TestRelation {
}
//1.创建接口1
interface Inter1{
 void add();//增加功能
    void delete();//删除功能
}
//2.创建接口2
interface Inter2{
    void update();//更新功能
    void find();//查询功能
}
//4.创建接口3。同时继承接口1和接口2
/**1.接口可以继承接口,并且可以多继承,多个接口之间用逗号隔开*/
interface Inter3 extends Inter1,Inter2{
}
//3.创建接口1的实现类
class Inter1Impl implements Inter1{
    @Override
    public void add() {
        System.out.println("正在马不停蹄的为您新增中...");
    }
    @Override
    public void delete() {
        System.out.println("商品已删除!");
    }
}
//5.创建接口3的实现类
/**2.接口与类是实现的关系,并且可以多实现,多个接口之间用逗号隔开
 * 多于Java中的类而言,遵循单继承 多实现
 * 一个子类只能有一个父类,但是一个子实现可以同时实现多个接口*/
class Inter33Impl implements Inter1,Inter2{
    @Override
    public void add() {
        System.out.println("稍等......正在努力保存中");
    }
    @Override
    public void delete() {
        System.out.println("删除成功!");
    }
    @Override
    public void update() {
        System.out.println("小二正在马不停蹄的更新哟");
    }
    @Override
    public void find() {
        System.out.println("客观,马上就查询好了,稍等一丢丢");
    }
}

总结

1.类与类的关系

继承关系,只支持单继承
比如,A是子类 B是父类,A具备B所有的功能(除了父类的私有资源和构造方法)
子类如果要修改原有功能,需要重写(方法签名与父类一致 + 权限修饰符>=父类修饰符)

2.类和接口的关系

实现关系.可以单实现,也可以多实现
class A implements B,C{}
其中A是实现类,B和C是接口,A拥有BC接口的所有功能,只是需要进行方法的重写,否则A就是抽象类

3.接口与接口的关系

是继承关系,可以单继承,也可以多继承
interface A extends B,C{}
其中ABC都是接口,A是子接口,具有BC接口的所有功能(抽象方法)
class X implements A{}
X实现类需要重写ABC接口的所有方法,否则就是抽象类
class A extends B implements C,D{}
其中A是实现类,也是B的子类,同时拥有CD接口的所有功能
这时A需要重写CD接口里的所有抽象方法

发表回复