如果我有一个名为 AmericanFender 的子类,它扩展了 Fender,而 Fender 扩展了父类(super class) BassGuitar,为什么会出现类似
AmericanFender amFen = new AmericanFender();
System.out.println(amFen.brand);
当
时,amFen.brand 不等于“Fender”Fender fen = new Fender()
fen.brand = 芬达;
相反,amFen.brand 结果为空。我想既然AmericanFender扩展了Fender,它就继承了Fender的实例变量(这些变量是从BassGuitar继承的)只要它们是公共(public)的?我显然对继承的看法是错误的,那么有人可以引导我走向正确的方向吗?非常感谢!
最佳答案
在继承中,AmericanFender
确实继承了Fender
的实例变量。这意味着它将具有与 Fender 相同的字段。这并不意味着它将在这些字段中具有相同的值。它将有一个名为“品牌”的空字段,这就是您所看到的。
如果您希望它继承该值,您可以在 Fender
类中创建一个方法:
public String getBrand() {
return "Fender";
}
然后你可以调用:
AmericanFender f = new AmericanFender();
System.out.println(f.getBrand());
关于java - 需要继承逻辑方面的帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36805185/