date0407/DuotaiDemo2.java

来源:互联网 发布:玄空风水软件 编辑:程序博客网 时间:2024/06/16 03:22
/*多态--转型Animal a = new Cat();//向上转型a.eat();如果想要调用猫的特有方法,如何操作?强制将父类的引用,转成子类类型。也叫做向下转型。如下:Cat c = (Cat)a;//向下强转c.catmouse();千万不要出现这样的操作:将父类对象转成子类类型。我们能转换的是父类引用指向了自己的子类对象时,该引用可以被提升,也可以被强制转换。多态自始至终都是子类对象在做着变化。//-------------------------------------------------毕姥爷 x = new 毕老师();//毕老师向上转型x.讲课();毕老师 y = (毕老师)x;//向下强转y.看电影();关键字:instanceof一般用于if的条件判断中。基本用于以下两种:1、要判断的子类型是少量,如人只有男人、女人。 多了就不利于扩展。2、判断出来的,要调用其特有的功能。如判断所属类型,调用其特有的方法。*///动物都有吃方法,但每个动物都有各自的特有方法,如:猫会吃和抓老鼠,狗会吃和看家abstract class Animal{abstract void eat();}class Dog extends Animal{public void eat(){System.out.println("eat bone");}public void kanJia(){System.out.println("看家");}}class Cat extends Animal{public void eat(){System.out.println("eat fish");}public void catchMouse(){System.out.println("抓老鼠");}}class DuotaiDemo2 {public static void main(String[] args) {function(new Cat());function(new Dog());}public static void function(Animal a){a.eat();if(a instanceof Cat)//instanceof:动物变量a是Cat类型吗?{Cat c = (Cat)a;//向下转型c.catchMouse();}else if (a instanceof Dog){Dog d = (Dog)a;d.kanJia();}}}

0 0
原创粉丝点击