【发布时间】:2015-09-22 13:57:05
【问题描述】:
您好,我为子类创建对象并尝试调用子类变量,但它调用了超类变量,超类和子类具有相同的类变量名称 .
在此输出中,名称为“Child”,期望为“o2.name;”但输出是“Base”。请解释清楚...
【问题讨论】:
-
您不能覆盖变量。它只是访问第一个变量
name,它可以从类ovrriddingBase访问。 -
我正在为子类“ovrriddingBase o2=new ovrriddingChild();”创建对象然后我尝试调用子类变量“name”。我期待答案“孩子”,但我得到了“基地”
-
请贴代码sn-ps,不要截图。
-
嗨,凯文,如果我正在创建像“ovrriddingBase o1=new ovrriddingBase();”这样的对象表示输出“Base”是正确的......但我正在为“ovrriddingBase o2=new ovrriddingChild();”创建对象。
-
@KarthickA.S 您的变量被声明为
ovrriddingBase,因此您可以访问在ovrriddingBase类范围内可见的方法和变量。
标签: java