为什么引用子类对象不能引用父类对象?
我正在向我的朋友解释OOP。我无法回答这个问题。
我只是通过说来逃避,因为OOP描绘了现实世界。在现实世界中,父母可以容纳孩子,但孩子不能容纳父母。OOP中的情况也是如此。
class Parent
{
int prop1;
int prop2;
}
class Child : Parent // class Child extends Parent (in case of Java Lang.)
{
int prop3;
int prop4;
public static void Main()
{
Child aChild = new Child();
Parent aParent = new Parent();
aParent = aChild;// is perfectly valid.
aChild = aParent;// is not valid. Why??
}
}
为什么这种说法无效?
aChild = aParent;// is not valid. Why??
因为 的成员是 的成员的超集。那为什么不能容纳父母。aChild
aParent
aChild