public abstract class PlayableItem{
private int duration;
protected PlayableItem(int duration){
this.duration = duration;
}
//getters and setters
public abstract String play();
public Song extends PlayableItem(){
private String name = name;
private String title = title;
protected Song(int duration, String name, String title){
super(duration);
this.name = name;
this.title = title;
}
//getters and setters
@Override
public String play(){
return "artist name - " + name + "song title - " + title + "duration - "
+ duration;
}
По какой-то причине я продолжаю получать сообщение об ошибке в методе Override, особенно в отношении продолжительности.Но мой профессор хочет, чтобы я оставил приватное поле int в абстрактном классе.Все уроки, которые мы проводили на абстрактных классах, использовали закрытые поля, но никогда не использовались как часть параметра в подклассах.Я не могу не думать, что мы упустили что-то очень важное во время наших уроков, потому что ясно, что поля в абстрактном классе обрабатываются иначе, чем обычные поля суперкласса.
А именно, в обычном суперклассе Animals с закрытым типом поля String
public class Animals{
private String type;
public Animals(String type){
this.type = type;
}
}
public class Pet extends Animals{
private String color;
public Pet(String type, String color){
super(type);
this.color = color;
}
}
при создании объекта Pet необходимо использовать параметр класса Parent, но для абстрактных классов онкажется другим.Может кто-нибудь объяснить?