Jon*_*eet 13
创建一个类型的对象Honda.的变量是类型的Bike.变量的值是一个引用 - 该引用必须始终是null值,或者必须引用与其兼容的类型的对象Bike,以便成为b变量的值.没关系,因为Honda类型与类型分配兼容Bike.
b.getClass()例如,如果您打印出来,那么仍会显示Honda,因为它指的是对象的执行时类型.但是如果有任何方法仅由Honda(而不是Bike)声明,那么你将无法直接调用它们b:
// This would be invalid, assuming that getHondaGarage is declared in Honda
String garage = b.getHondaGarage();
Run Code Online (Sandbox Code Playgroud)
尽管对象本身(在执行时)支持该方法,但是类型的变量Bike意味着您只能访问Bike由其及其超类声明的成员.