【问题标题】:Calling non-abstract method from subclass从子类调用非抽象方法
【发布时间】:2019-12-01 20:30:55
【问题描述】:

建议将 File 类对象传递给 playClip(),该对象引用动物声音文件并捕获任何异常并在捕获到任何异常时输出“Meow”。当我运行 Main 函数时,我听到扬声器中的猫声。

我是否以正确的方式将 File 对象引用传递给 playClip()

public void makeSound() {
  try {
    playClip(new File("Cat.wav"));
  } catch (Exception e) {
    System.out.println("Meow");
  }
}

具有以下主要功能

public class Main {
  public static void main(String[] args) {
    Cat sound = new Cat();
    sound.makeSound();
  }
}

【问题讨论】:

  • 如果这不是Java,请edit您的问题添加正确的语言标签。
  • “调用实际方法”是什么意思?您没有提供尝试调用该方法的代码。
  • 这就是我的问题。我试过使用 super.playClip() 有错误。
  • 什么错误?直接从您的编译器提供一条消息,其中包含指向导致错误的行的指针。
  • 如果抽象类中的方法已经实现,那么就像调用任何方法一样调用它。

标签: java abstract


【解决方案1】:

在您的抽象类中,创建方法 playClip:

public abstract class Sound {

    abstract public void makeSound();

    public void playClip(File clipFile) {  
        // code plays a file and has some exception handling
    }
}


    public class Cat extends Sound {

        public Cat() {

        super();
    }

    @Override
    public void makeSound() {
        playClip(new File("/sound_file"));
    }
}

当然,playClip() 也可以是抽象的。这取决于你想要什么。

【讨论】:

  • 我现在有了这个:
猜你喜欢
  • 2016-06-20
  • 2012-09-21
  • 2021-10-13
  • 2017-03-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-15
  • 1970-01-01
相关资源
最近更新 更多