A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© 小忧伤 中级黑马   /  2016-5-26 22:48  /  296 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

当实现多个接口时的多态:

          interface IA{
                  public void fun1();
          }
          interface IB{
                  public void fun2();
          }
   abstract class AbsC{
          public abstract void fun3();
  }
        class Sub extends AbsC implements IA,IB{
                public void fun1(){
                  }
                  public void fun2(){
                  }
                  public void fun3(){
                  }
          }
          main(){
                  //使用接口多态
                  IA a = new Sub();
                  a.fun1();//只能访问fun1()方法
                  a.fun2();//编译错误。在IA中没有fun2()方法
                  //向下转型
                  Sub sub = (Sub)a;
                sub.fun1();//OK的
                sub.fun2();//OK的

                  IB b = new Sub();
                  b.fun1();//编译错误。在IB中没有fun1()方法
                  b.fun2();//OK的

                  //抽象类多态
                  AbsC c = new Sub();
                  c.fun3();//只能访问fun3();
          }


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马