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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

如何使用子类的特有方法:
  1. class DuoTaiDemo
  2. {
  3.         public static void main(String[] args){
  4.                 Animal a = new Cat();//类型提升,向上转型。
  5.                 a.eat();//但是不能使用子类的特有方法。
  6.                 //如何使用子类特有方法呢?
  7.                 //可以强制将父类的引用转换成子类类型。
  8.                 Cat c = (Cat)a;//向下转型
  9.                 c.CatchMouse();
  10.                 //下面这种转型是不对的。我们转的是父类的引用,不可以将父类的对象转型。
  11.                 //我们可以转换的是父类的引用指向的自己的子类对象时,可以被提升,也可以被强制转换。
  12.                 //多态自始至终都是子类对象在变化
  13.                 Animal a = new Animal();
  14.                 Cat  c = (Cat)a;
  15.         }
  16.         public static void function(Animal a){
  17.                 a.eat();//instanceof用来判断所属类型,然后可以使用所属类型的特有方法。
  18.                 if(a instanceof Cat){
  19.                         Cat c = (Cat)a;
  20.                         c.CatchMouse();
  21.                 }
  22.                 else if(a instanceof Dog){
  23.                         Dog d = (Dog)a;
  24.                         d.kanjia();
  25.                 }
  26.         }
  27. }
复制代码




0 个回复

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