Mik*_*ike 14 java oop inheritance
我希望有一个构造函数,其参数可以自动地由所有子类继承,但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
}
Run Code Online (Sandbox Code Playgroud)
我不希望有写B(int x),C(int x)等等.每个子类.是否有更聪明的方法来解决这个问题?
解决方案#1.创建一个init()可以在构造函数之后调用的方法.这是有效的,虽然对于我的特定设计,我想要求用户在构造函数中指定在编译时验证的某些参数(例如,不通过varargs/reflection).
Mat*_*att 12
其他回复是正确的,Java不会让你继承构造函数.但IDE可用于帮助减轻为所有课程创建这些内容的巨大负担.
在Eclipse中,转到"Source"菜单并选择"Generate Constructors from Superclass ...".使用对话框创建新类时,也可以选择此选项.