学习Java过程中,遇到过一条神奇的语句:
People p=new Student("张三");
其中,People是Student的父类。
首先,这样写是安全的,因为是用较抽象的指向了较具体的实例。即p指向了Student类中,在父类有定义的东西。而Student类比父类多出的则无法使用。
其次,上文提及“多出的东西”并没有丢失,仅仅是无法使用,其仍然存在。这时如果有一句强制转型:Student st=(Student)p,则“多出的东西”便可以使用了。
学习Java过程中,遇到过一条神奇的语句:
People p=new Student("张三");
其中,People是Student的父类。
首先,这样写是安全的,因为是用较抽象的指向了较具体的实例。即p指向了Student类中,在父类有定义的东西。而Student类比父类多出的则无法使用。
其次,上文提及“多出的东西”并没有丢失,仅仅是无法使用,其仍然存在。这时如果有一句强制转型:Student st=(Student)p,则“多出的东西”便可以使用了。