Название говорит само за себя, у меня есть класс, в котором переменные конструктора должны быть закрытыми.
public class AdMedia {
private String name;
private int price;
public AdMedia(){}
public AdMedia(String name, int price) {
this.name = name;
this.price = price;
}
, который поставляется с publi c getter
setter
переменных конечно.
Теперь проблема возникает сразу после того, как я пытаюсь создать дочерний класс с именем Magazine. Класс должен унаследовать имя и цену, но цена постоянна для каждого инициирования объекта. поэтому они не будут в конструкторе в качестве имени.
public class Magazine extends AdMedia {
private int area;
private String position;
private String topics;
public Magazine() {}
public Magazine(String name, int size, String position, String topic){
super();
this.size = size;
this.position = position;
this.topic = topic;
}
, который также идет с свой собственный getter
setter
тоже.
Я пытаюсь указать цену внутри конструктора, но конструктор требует переданный параметр. Использование super(name)
также уведомляет, что ни один из родительских конструкторов не имеет такой формы.
Это усложняет меня, когда я пытаюсь get
name
использовать метод родительского класса getName()
, который может потребовать некоторого понижающего преобразования. угадайте?
Я пытался найти решение, но большинство требует, чтобы я изменил доступность переменной на protected
. Не было бы другого способа сделать это в private
?
РЕДАКТИРОВАТЬ: Я забыл упомянуть, что результатом выполнения того, что я написал выше, является невозможность доступа к имени журнала, поэтому, когда я пытаюсь получить имя с понижением, возвращается значение null.