【发布时间】:2018-09-16 09:49:24
【问题描述】:
这样的可能吗
abstract class AbstractSuperClass {
private Entity entity;
public AbstractSuperClass(Entity entity) {
this.entity = entity;
}
public abstract void operate();
}
public class SubClass extends AbstractSuperClass {
public void operate() {
this.entity.doVoidMethod(); // is this.entity defined in instances of SubClass ?
}
}
// ... somewhere else
Entity instantiatedEntity = new Entity();
SubClass instance = new SubClass(instantiatedEntity);
instance.operate(); // does this call this.entity.doVoidMethod() inside of instance?
我希望能够跳过在我正在编写的抽象类的子类中编写自己的构造函数。每个子类中的所有构造函数都是相同的。
如果我跳过为抽象类的子类编写构造函数(这甚至允许吗?)是否默认使用抽象类的构造函数?
【问题讨论】:
-
仅当它没有参数并且可以访问时。
-
@EJP “可访问”是什么意思?并且构造函数必须有一个参数
-
普通 Java 源代码需要为每个调用
super构造函数的子类包含一个构造函数,并将Entity传递给它。但是,您可以使用注释自动生成它,类似于 Lombok 的那些。 -
@DodgyCodeException 我如何使用注释来做到这一点? (我没听说过龙目岛)
-
这是在回复评论时无法回答的问题。关于如何做到这一点的整本书都写了。
标签: java oop inheritance abstract-class superclass