字类和超类的转化问题

举个例子:有2个类,Father是父类,Son类继承自Father。

Father f1 = new Son(); // 这就叫 upcasting (向上转型)

// 现在f1引用指向一个Son对象

Son s1 = (Son)f1; // 这就叫 downcasting (向下转型)

// 现在f1还是指向Son对象

第2个例子:

Father f2 = new Father();

Son s2 = (Son)f2; // 出错,子类引用不能指向父类对象

 

这样就有这个问题:一个超类的实例是不能强转为子类的。

所以一般在写继承机构的时候,在使用的时候要用字类的实例赋予超类的引用。

Package package = new UMPPackage()

你可能感兴趣的:(问题)