java - 需要继承逻辑方面的帮助

标签 java inheritance

如果我有一个名为 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/

相关文章:

python - 在元类中覆盖 __bases__

java - 为什么还是无法进入下一页?

java - JAXB - 如何在绑定(bind) Java 类中指定 xml 属性

java - 文件传输服务器 <-> 客户端,文件不完整

c# - 有没有办法让一个类继承它的 'remove' 方法?

c++ - 为什么我不能如下设置接口(interface)类的成员变量

c++ - 从 parent 到 child 的 dynamic_cast 问题

c# - 使用 JavaScript/jQuery 从另一个类调用 C# 方法

java - 解决所有 Java 字节都已签名这一事实的最佳方法是什么?

java - 找出某个类抛出了哪些异常