Я хочу иметь конструктор с аргументом, который автоматически наследуется всеми дочерними классами, но Java не позволит мне сделать это
class A {
public A(int x) {
// Shared code here
}
}
class B extends A {
// Implicit (int x) constructor from A
}
class C extends A {
// Implicit (int x) constructor from A
}
Я не хочу писать B(int x)
, C(int x)
и т.д. для каждого дочернего класса. Существует ли более разумный способ решения этой проблемы?
Решение №1. Создайте метод init()
, который можно вызвать после конструктора. Это работает, хотя для моего конкретного проекта я хочу, чтобы пользователь указывал определенные параметры в конструкторе, которые проверяются во время компиляции (например, не через varargs/reflection).