Вызов неабстрактного метода из подкласса - PullRequest
0 голосов
/ 01 декабря 2019

Предложено передать объект класса File в playClip(), который ссылается на звуковой файл животного и перехватывает любые исключения, выводящие «Meow», если какие-либо исключения были обнаружены. Когда я запускаю функцию Main, я слышу звук cat в динамиках.

Правильно ли я передал ссылку на объект 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();
  }
}

1 Ответ

0 голосов
/ 01 декабря 2019

В вашем абстрактном классе создайте метод 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 () также может быть абстрактным. Это зависит от того, что вы хотите.

...