在java中创建实例

Gan*_*esh -1 java object

在对象创建中,

自行车b =新本田();

对于哪个类,对象是为本田还是For Bike创建的?

自行车是父母班,本田是儿童班.

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由其及其超类声明的成员.