方法的多态
Animal bird2 = new Bird("2niao", 4);
bird2.sing();
bird2.sing()
,由于bird2
被定义为是Animal
类型,而Animal
类型是没有sing()
这个方法的,因此会报错。解决办法是,把这个bird2
强制转换成Bird类型。
((Bird)bird2).sing();
可以先用 isinstanceof来进行判断
父类引用调用子类对象,是用的子类的方法。
Dog类,Bird类都有eat()方法,他们都继承了Animal类,于是就重写了父类的方法。
Animal bird3=new Bird("niao3", 23);
bird3.eat();
即使bird3被定义为Animal类型,eat()依然输出:
niao3正在吃虫子
原文:https://www.cnblogs.com/heenhui2016/p/10963278.html