我的Java代码看起来像这样:
public class Animal {
Animal(String name) {
// some code
}
}
Run Code Online (Sandbox Code Playgroud)
像这样的子类:
public class Dog extends Animal {
Dog(String name) {
// SAME code as Animal constructor
}
}
Run Code Online (Sandbox Code Playgroud)
Dog和the Animal之间的唯一区别是Dog有一些方法可以覆盖超类.他们的构造函数具有完全相同的代码.我怎样才能避免这个重复的代码?我知道对象不能继承构造函数.
如果构造函数是相同的,则不需要它Dog.您可以通过调用访问Animal构造函数.Dogsuper(name);
public class Animal {
Animal(String name) {
// some code
}
}
Run Code Online (Sandbox Code Playgroud)
而在狗:
public class Dog {
Dog(String name) {
super(name);
}
}
Run Code Online (Sandbox Code Playgroud)
值得注意的是,对超类构造函数的调用必须是构造函数中的第一行.但是在你打电话之后super(name)你可以继续做其他特定于狗的代码.
例如:
public class Dog {
Dog(String name) {
// You can't put any code here
super(name);
// But you can put other code here
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
521 次 |
| 最近记录: |