Java类的继承问题
public class ParentChildTest {
public static void main(String[] args) {
Parent parent=new Parent();
parent.printValue();
Child child=new Child();
child.printValue();
parent=child;
parent.printValue();
parent.myValue++;
parent.printValue();
((Child)parent).myValue++;
parent.printValue();
}
}
class Parent{
public int myValue=100;
public void printValue() {
System.out.println("Parent.printValue(),myValue="+myValue);
}
}
class Child extends Parent{
public int myValue=200;
public void printValue() {
System.out.println("Child.printValue(),myValue="+myValue);
}
}
-
继承:Child类继承自Parent类,Child类拥有Parent类的所有属性和方法。
-
多态:通过将Child类的对象赋值给Parent类的引用变量,实现了多态。即可以用Parent类的引用变量来引用Child类的对象。
-
方法重写:Child类重写了Parent类的printValue()方法,当调用printValue()方法时,会根据对象的实际类型来选择调用相应的方法。
-
成员变量的隐藏:Child类定义了一个与Parent类同名的成员变量myValue,这导致了Parent类中的myValue被隐藏。当使用Parent类的引用变量访问myValue时,只能访问到Parent类中的myValue,而不能访问到Child类中的myValue。
-
强制类型转换:通过将Parent类的引用变量强制转换为Child类的引用变量,可以访问到Child类中的成员变量和方法。
总结:这段代码展示了继承、多态、方法重写、成员变量的隐藏和强制类型转换等面向对象的特性。
标签:12,parent,Parent,printValue,23.10,myValue,Child,public From: https://www.cnblogs.com/atrue/p/17760868.html