говорят, что у меня есть родительский класс и дочерний класс и вызывается конструктором дочернего класса. Должен ли я иметь как дочерние конструкторы, так и аргументы родительских конструкторов, и использовать super() для инициализации родителя. А это значит, если я перегружен конструктор родителей я должен был бы иметь конструкторов, соответствующих каждому из конструкторами ребенка ... Так что, если у меня было два родителя конструктораКак инициализация конструктора суперкласса при вызове конструктора подкласса
parent(int a);
parent(int a,int b);
и два ребенка конструкторы
child(int c);
child(int c,int d);
Я должен был бы иметь детей (Int а) на самом деле быть в виде двух конструкторах
child(int a, int c)
{
super(a)
c = this.c;
}
и
child (int a, int b, int c)
{
super(a,b)
c = this.c;
}
и иметь ребенка (INT C, INT D) на самом деле есть два конструктора
child(int a, int c, int d)
{
super(a);
c = this.c;
d = this.d;
}
или мог я пройти
child(int a,int b, int c, int d)
{
super(a,b);
c = this.c;
d = this.d;
}
}
Если я явно вызываю родительский конструктор, используя super i, я должен передать все его аргументы в конструкторах под классов? –
@ChrisOkyen вам нужно получить его откуда-то, например: если ваш родительский класс требует '(int a, int b)', и вам нужен еще один параметр для вашего подкласса, вы можете написать один конструктор в вашем подклассе, например '(int a, int b, String c) {super (a, b); this.c = c;} '. Другой способ - сгенерировать это значение (если это имеет смысл ...), предположим, что параметр a всегда один и тот же для этого конкретного подкласса, поэтому вы можете сделать что-то вроде '(int b, String c) {super (3, b) ; this.c = c;} ' –
Спасибо, это просто кажется очень повторяющимся, чтобы перегружать методы. –