1. Если вы хотите изменить значения полей в производном классе, вы можете сделать это в конструкторе производного класса. Вот пример:
public class Cat extends Animal {
public Cat(String name) {
super(name, "Cat");
this.isWalk = true;
this.isFly = false;
this.isSwim = false;
}
}
В этом примере, мы вызываем конструктор базового класса super(name, "Cat"), а затем устанавливаем значения полей isWalk, isFly и isSwim.
2. Да, если вы хотите использовать конструкторы базового класса в производном классе, вам нужно вызвать их с помощью super(). Java не наследует конструкторы по умолчанию. Вот пример:
public class Cat extends Animal {
public Cat() {
super();
}
public Cat(String name, String type) {
super(name, type);
}
public Cat(String name, boolean isWalk, boolean isFly, boolean isSwim) {
super(name);
this.isWalk = isWalk;
this.isFly = isFly;
this.isSwim = isSwim;
}
}
В этом примере, каждый из конструкторов Cat вызывает соответствующий конструктор Animal с помощью super(). Затем мы можем установить дополнительные поля в конструкторе Cat, если это необходимо.
Вопрос 2: Так же, допустим, что у базового класса есть свои конструкторы: 1. пустой; 2. имя и тип; 3. имя и булевые поля. В том же производном классе, если я так же хочу сделать точно такие же конструкторы, мне нужно наследовать все конструкторы при помощи super?