如何使用子类的特有方法:
- class DuoTaiDemo
- {
- public static void main(String[] args){
- Animal a = new Cat();//类型提升,向上转型。
- a.eat();//但是不能使用子类的特有方法。
- //如何使用子类特有方法呢?
- //可以强制将父类的引用转换成子类类型。
- Cat c = (Cat)a;//向下转型
- c.CatchMouse();
- //下面这种转型是不对的。我们转的是父类的引用,不可以将父类的对象转型。
- //我们可以转换的是父类的引用指向的自己的子类对象时,可以被提升,也可以被强制转换。
- //多态自始至终都是子类对象在变化
- Animal a = new Animal();
- Cat c = (Cat)a;
- }
- public static void function(Animal a){
- a.eat();//instanceof用来判断所属类型,然后可以使用所属类型的特有方法。
- if(a instanceof Cat){
- Cat c = (Cat)a;
- c.CatchMouse();
- }
- else if(a instanceof Dog){
- Dog d = (Dog)a;
- d.kanjia();
- }
- }
- }
复制代码
|
|