黑马程序员——java小结_005_“多继承”(接口的多实现)

本文通过生动的例子解释了Java中的多接口实现机制,探讨了为什么需要多实现,并展示了如何通过接口来扩展类的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

------- android培训java培训、期待与您交流! ----------

java虽然没有多继承,但是它有另外一个东西,接口的多实现.

简单理解为java只有一个干爹,但是可以找n个干妈╮(╯▽╰)╭

其实我更倾向于将它理解为一夫多妻制。

为什么要有多实现呢?

可以这样理解:

现在要出去旅游,需要带1000元钱,相机,手机等等。

1,找(extends)干爹要,但是干爹那只有1000元钱,没有相机和手机,怎么办?

2,那还用说,找(implements)干妈啊,但是一个干妈1号只有相机,没手机怎么办?

3,简单,再找(implements)另外一个干妈,还不够呢,再找(implements)一个呗。

 

接口: interface

固定格式:

    常量:publicstatic final

    方法:publicabstract

记住:接口中的成员都是public

接口:是不可创建对象的,因为有抽象方法。

需要被子类是实现(implement),子类对接口中的抽象方法全部覆盖后,子类才可以实例化。

否则子类是一个抽象类

 

举个简单的列子:

 

<span style="font-size:18px;">public class try_01_多实现 {
 
    
          public static void main(String[] args)
          {
              Test t = new Test();
              t.show();
              System.out.println(t.NUM);
              System.out.println(Inter.NUM);
              System.out.println(Test.NUM);
              D d = new D();
              d.Ashow();
             
          }
    
}
    
      interface Inter
      {
          public static final int NUM = 3;
          public abstract void show();
      }
 
      interface InterA
      {
          public abstract void show();
      }
 
      class Demo
      {
          public void function(){};
      }
 
      class Test extendsDemo implements Inter,InterA
      {
          public void show()
          {
              System.out.println("Inter,InterA中都有的show,实现一个show方法就同时覆盖了他们");
          };
      }
      interface A
      {
          public abstract void methodA();
          public abstract void Ashow();
      }
 
      interface B extendsA
      {
          public abstract void methodB();
 
      }
 
      interface C extendsB
      {
          /*public abstract */void methodC();
      }
 
      class D implementsC
      {
          /*若想创建D则需要覆盖A,B,C三个里面的所有方法*/
          public void methodA(){}
          public void methodB(){}
          public void methodC(){}
        
         public void Ashow() {
              System.out.println("创造D则必须覆盖其所实现的接口的方法 即使是奶奶级的A");
             
         }
      }
 </span>


输出结果为:

Inter,InterA中都有的show,实现一个show方法就同时覆盖了他们

3

3

3

创造D则必须覆盖其所实现的接口的方法即使是奶奶级的A

 

    从上述例子中class Test extends Demo implements Inter,InterA我们可以看到,继承类的同时我没还可以实现接口,切可以实现多个接口。

    也就是class Test只有一个干爹Demo,但是有两个干妈:Inter和InterA。

或者我们可以把它看成非洲的部落,大部分部落实行一夫多妻制,也就是说你只有一个爹,但是你却又一堆妈:大妈,二妈,三妈。。。。。。

    从interface C extendsB中我们注意到一个问题,虽然没有加abstract,但是默认的是public abstract void show()那么我们在实现c的时候就必须覆盖show()方法,就像你是大妈生的,但是不管你内心是否承认二妈,无论从法律还是事实出发都需要承认那是妈。

 ------- android培训java培训、期待与您交流! ----------


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值