java - Java中是否可以从其父类(super class)调用子类的实例变量?

标签 java inheritance

我有一个父类(super class)动物,它由猫、狗和狮子扩展。这三个都有一个代表它们声音的字段String sound。 playSound(int i, String s) 方法播放声音 s, i 次。 Animal 父类(super class)中是否可以有一个通用方法,该方法接受调用它的子类的字段?或者我是否必须在每个类中创建一个单独的重写方法,用它们自己的“声音”变量调用 super ?

最佳答案

父类(super class)无法访问子类中的字段。这里通常的方法是创建一个抽象 getter:

protected abstract Sound getSound();

public void playSound(int times) {
    for(int i=0; i<times; i++) {
        getSound().play();
    }
}

关于java - Java中是否可以从其父类(super class)调用子类的实例变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29730182/

相关文章:

java - 如何使用 Builder 导入第 3 方 jar?

java - JSOUP 登录失败

python - PyQt 与继承的混淆

ruby-on-rails - 为什么在 Controller 被子类化时 Rails before_filter 被调用两次?

Silverlight自定义控件继承问题

c++ - 如何通过基类指针获取子类的属性

java - 递归方法找出兑换 5 欧元纸币的所有方法?

java - Spring Hibernate 数据库查询不起作用

java - 如何检索特定短信的联系方式?

javascript - 扩展 JavaScript 错误/异常