关于java上转型对象

2024-10-31 09:18:07
推荐回答(3个)
回答1:

class Human{
public void drink(){System.out.println("Human");}
}
class YongMan extends Human{
public void drink(){System.out.println("YongMan");}}
}
public class Test{
public static void main(String arge[]){
Human e2=new YongMan();
e2.drink();
}
}

以上面这个程序为例子
Human e2=new YongMan();
这句其实是指父类对象e2是子类YongMan对象的上转型对象

上转型对象不能操作子类新增的成员变量(失掉了这部分属性);不能使用子类新增的方法(失掉了一些功能)。
上转型对象可以操作子类继承或者隐藏的成员变量,也可以使用子类继承的或者重写的方法。上转型对象操作子类继承或重写的方法,其作用等价于子类对象去调用这些方法。因此,如果子类重写了父类的某个方法,则当对象的上转型对象调用这个方法时一定是调用了这个重写的方法

上面的YongMan 类中的drink()方法 重写了父类的方法
所以最后的输出结果是YongMan

回答2:

人,继承自动物,人也是属于动物的,人的引用可以直接赋给动物..

回答3:

人,继承自动物,人也是属于动物的,人的引用可以直接赋给动物.
我支持
.