Я пытаюсь реализовать следующую древовидную структуру на данный момент (т. Е. Man, Woman, Child, SpecialMan, SpecialWoman, SpecialChild). Есть ли опрятный/альтернативный (менее повторяющийся код) способ, которым я мог бы подходить к нему?Один класс/несколько конструкторов против нескольких классов (наследование)
public class Person {
int hat;
int one_glove;
}
public class Man extends Person {
int coat;
int shorts;
}
public class Woman extends Person {
int coat;
}
public class Child extends Person {
int shorts;
}
public class SpecialMan extends Man {
int second_glove;
}
public class SpecialWoman extends Woman {
int second_glove;
}
public class SpecialChild extends Child {
int second_glove;
}
То, что я имею в виду только имея класс Person содержит все переменные, а затем просто иметь несколько конструкторов для него -> привязанных к каждому конкретному типу объекта?
public class Person{
int hat;
int one_glove;
int coat;
int shorts;
int second_glove;
public Person(int coat;int shorts; int hat; int one_glove;){} //Man
public Person(int coat;int hat; int one_glove;){} //Woman
public Person(int coat;int shorts; int hat; int one_glove; int second_glove;) {} //SpecialMan
etc...
}
Что такое 'man' в конструкторе? – Nomad
Лучше использовать интерфейсы для указания наличия дополнительных полей – ControlAltDel
Что вы подразумеваете под одним классом или несколькими конструкторами? Я понимаю, что класс имеет более 1 конструктора. Вы можете по крайней мере выяснить, что необходимо, а также предоставить образец, если это возможно. Ура! – Avidos