在对象创作中,
自行车b =新本田();
为哪个类创建对象...对于Honda还是For Bike?
自行车是父级,本田是儿童级。
答案 0 :(得分: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();
即使对象本身(在执行时)支持该方法,变量属于Bike
类型意味着您只能访问由Bike
及其超类声明的成员
答案 1 :(得分:4)
Object
(或)将为Honda
类创建实例。
=
符号的左侧表示引用的类型为Bike
,右侧为实例。
答案 2 :(得分:2)
创建Object
类型Honda
。
更多关于“实例化类”的更多内容与“创建对象相同。”当您创建object
时,您正在创建一个类的“instance
”,因此“实例化”class
。
答案 3 :(得分:1)
对象的类型为Honda
。
b instanceof Honda == true
另一方面,变量的类型为Bike
答案 4 :(得分:1)
Object
类{p} Honda
,但它将存储在Bike
类型的变量中,请确保Bike
是Honda
... 的派生类