1.父类名称 父类对象 = new 子类名称();
Animal animal = new Cat();
此时的只能调用父子共有的方法,无法访问子类特有的方法。
解决方法:对象的向下转型
Cat cat = (Cat) animal;(类似于强制类型转换)
但 此时的你怎么知道animal指向的是cat对象而不是dog对象呢?
解决办法: 格式: 对象 instanceof 类名称 会返回一个bool值,表示对象能不能转化成这个类
if(animal instanceof Cat)
2.接口和父类都可以作为方法的参数。(用于多态使用)
java规定接口interface不能直接使用new关键字来创建对象,但并没有限定它不能创建对象。 学习了匿名内部类后,可以发现,接口使用匿名方式创建对象也是可以的。 接口对象可以用于实现多态。