В принципе, у меня есть:ява подкласс: несколько конструкторов наследуется от абстрактного суперкласса
public abstract class AbstractClass {
public AbstractClass(Type arg0, Type arg1, Type arg2) {
// do some stuff with all those args
}
public AbstractClass(Type onlyOneArg) {
// do different stuffs with this different arg.
}
protected someMethods() { /* ... */ }
}
И у меня есть несколько проблем в подклассы:
- во-первых, я должен -в большинство из случаи - бесполезно переписывают конструкторы. Не очень раздражает, просто немного грязно для глаз.
- И, более важно, я не вынужден реализовать как конструкторы (хотя оба они используются в программе).
Пример моих текущих подклассов:
public class MyClass extends AbstractClass {
public MyClass(Type arg0, Type arg1, Type arg2) {
super(arg0, arg1, arg2);
}
public MyClass(Type onlyOneArg) {
super(onlyOneArg);
}
}
И
- я должен быть в состоянии написать некоторый конкретный код в конструкторе подкласса, если я хочу.
- У меня слишком много общего кода, который я хочу сохранить в абстрактном классе.
Могу ли я что-то сделать? Есть ли что-то, что я не знаю о Java? Или мой дизайн плохой? Или.. ?
Не уверен, в чем вопрос. Вы хотите, чтобы вас заставили реализовать все конструкторы суперклассов? Что это о требованиях, которые вы заявили, что вы не можете сделать? –
Я был бы счастлив переформулировать вопрос, но я не совсем уверен, как .. Я имел в виду, что хочу быть уверенным, что в каждом подклассе 'AbstractClass' оба конструктора доступны. В программе я создаю экземпляр с обоими конструкторами, не зная точного типа.Я знаю только, что объект будет подклассом 'AbstractClass'. Поэтому я должен быть уверен, что всегда могу использовать оба конструктора. Это более понятно? ... Sry, трудно выразить свои мысли по-английски! – user978548
Кроме того, мне также было интересно, возможно ли каким-либо образом для java автоматически использовать конструктор 'AbstractClass', если он не определен в подклассе, но это не моя основная проблема. – user978548