ClassA a2 = new Class B();new Class B();//实例化 Class B对象 然后赋值给 ClassA a2对象 由于两个Class没有什么关系 所以不能把 B对象强制转换给 A对象 报错
错误的,用ClassB的构造方法,创建ClassA的对象,创建不了 就像买了只母鸡想孵出大鹅一样
public class Hide{ public static void main(String []args){ ClassA a2 = new Class B(); } } class ClassA {} class ClassB extends ClassA{ } 代码打错了,这个才是
class Hide{ public static void main(String []args){ ClassA a2 = new ClassB(); } } class ClassA {} class ClassB extends ClassA{ }这个编译通过的了 ClassA a2 = new ClassB(); 什么意思
这个就是由于 B 继承 A 那么 B 的对象可以转换成 A对象 但是 A 是不能转换成 B的 举个尝试例子 正方体 是矩形 但是 矩形 不一定是正方体 所以如果 如果被定义 成正方体 就可以被视为 矩形~~ 一个道理
然后赋值给 ClassA a2对象
由于两个Class没有什么关系 所以不能把 B对象强制转换给 A对象 报错
就像买了只母鸡想孵出大鹅一样
public class Hide{
public static void main(String []args){
ClassA a2 = new Class B(); }
}
class ClassA {}
class ClassB extends ClassA{
}
代码打错了,这个才是
class Hide{
public static void main(String []args){
ClassA a2 = new ClassB(); }
}
class ClassA {}
class ClassB extends ClassA{
}这个编译通过的了
ClassA a2 = new ClassB(); 什么意思
但是 A 是不能转换成 B的
举个尝试例子
正方体 是矩形 但是 矩形 不一定是正方体
所以如果 如果被定义 成正方体 就可以被视为 矩形~~ 一个道理