JAVA接口(Interface)学习笔记


interface A()
interface B()
ClassC implements A,B
{
}
Class D
{
   main()
   {
      new D().dofunction(new C());
   }
   dofunction(A a)
   {
   }
   dofunction(B b)
   {
   }
}

 

 

上面代码想要说:
   有A(Aface),B(Bface)两个接口,C(ImplementAB)类实现了(implements)A,B接口,D(MainClass)类里有定义了两个名字(dofunction)一样的函数参数分别是接口A,和B。
在D类的main方法里调用函数(dofuanction())。
--------------------------------------------------------
package cn.itcast;

public interface Aface {
  public void doA();
}
------
package cn.itcast;

public interface Bface {
   public void doB();
}

------
package cn.itcast;

public class ImplementAB implements Aface,Bface
{
   public void doA()
   {
 System.out.println("hi,my name is A");
   }
  
   public void doB()
   {
    System.out.println("hi,my name is B");
   }
}
---------------
package cn.itcast;

public class MainClass {

 /**
  * @param args
  */
  static ImplementAB impab = null;
 public MainClass(ImplementAB impab)
 {
  this.impab = impab;
 }
 
 public static void main(String[] args) {
  // TODO Auto-generated method stub
      MainClass  ma = new MainClass(new ImplementAB());
      ma.dofunction((Aface)impab);
      ma.dofunction((Bface)impab);
 }
 public void dofunction(Aface a)
 {
  a.doA();
 }
 public void dofunction(Bface b)
 {
  b.doB();
 }

}
运行结果:

hi,my name is A
hi,my name is B

为什么会得到这样的结果呢??

因为一个类必须实现接口中的所有方法,因为调用者有可能会用到接口中的每个方法,所以,调用者必须实现这些方法。在main方法里调用dofunction()的时候必须指定函数的所有者,因为类implementAB都实现了Aface接口和Bface接口。如果不指定为那一种类型的话程序就报错,因为它不知道应该执行那个任务。 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值