类型转换的规则
准备工作:
public class B{ ……}
public class D:B{……}
B b1=new B();
D d1=new D();
B b2 =new D();
---------------------------------
在变量名类型的层面可以任意的相互转换,需要遵循的规则是:
子类型向父类型转换的时候不需要任何语法; 例:B b3=d1;
父类型向子类型转换的时候,需要强制类型转换; 例:D d3=(D)b1;
但是做到这一点只能保证在编译的时候不报错。
在对象层面:
只能是子类的对象转向父类型, 例: B b2 =new D();
父类的对象不能转成子类型, 例:D d2=(D)b1; //编译的时候不会报错,运行的时候会报错
也可以是该类的对象转回他本身的类型。 例:D d3=(D)b2;
做到这个就可以达到在运行的时候不报错,才能真正完成类型的转换。