在这种情况下:我有一个班级,我创建了一个实例。我希望继承类中的大多数方法/变量,但我想要覆盖一些方法,类似于抽象类的工作方式。
到目前为止,这是我的代码。
public class Example {
public void methodOne() {
//Inherited
}
public void methodTwo() {
//Interited
//Maybe calls methodThree() as a part of its function
}
public void methodThree() {
//Override Me
}
}
答案 0 :(得分:1)
我不能[使类抽象]因为我需要创建实例
使类抽象确实可以防止实例化,但是由于你想要防止实例化,除非重写方法,这是正确的做法。
你可以匿名进行覆盖,所以语法上这类似于实例化基类:
public abstract class Example {
public void methodOne() {
//Inherited
}
public void methodTwo() {
//Interited
//Maybe calls methodThree() as a part of its function
}
public abstract void methodThree();
}
...
static void main(String[] args) {
Example e = new Example() {
@Override
public void methodThree() {
... // Do something
}
};
}