子类转父类 子类特有的丢失了。父类的被覆盖了!
向上转换只能调用父类继承和重写的,不能调用独有的。
Dog dogs = new Dog();
Pet pet = dogs;//dogs特有的丢失
pet.eat();//父类被覆盖,调用的是子类(继承的)的
发生多态一定有继承 一定有方法重写,看上去是父类实际上是子类,一定要清楚只向那个子类。
一个方法的参数如果是 类 类型 (静态类) 他可以接收他本类类型 也可以接收他所有子类 的对象。
向下转换(父类转子类)需要注意:
instanceof:同类型判断运算符
if (pss instanceof Pet) {//前面是对象后面是类型 如果pss是pet类型或者是Pet父类类型就是true
int new_name = (int) pss;
}