动态绑定Java。对象是否具有其声明类型或实际类型的方法?
假设我声明如下:
Cat elsa = new Lion();
狮子延伸到猫。如果我这样说,艾尔莎是一只猫,拥有猫的所有方法,还是一只狮子,拥有猫和狮子的所有方法
在我能找到的其他问题中,没有提到这个确切的问题
你可以在下面搜索框中键入要查询的问题!
假设我声明如下:
Cat elsa = new Lion();
狮子延伸到猫。如果我这样说,艾尔莎是一只猫,拥有猫的所有方法,还是一只狮子,拥有猫和狮子的所有方法
在我能找到的其他问题中,没有提到这个确切的问题
# 1 楼答案
您创建的对象属于
Lion
类型,具有Lion
对象的所有属性和方法。然而,变量elsa
属于Cat
类型,因此它只能用于访问Cat
对象的方法和属性所以你的问题的答案是
elsa
将是一个Lion
,你只能将其视为Cat
,除非你将其转换回Lion
。例如: