Java 在抽象类中调用super
首先,我是一名C#开发者哈哈 我的程序中有一个名为Game的抽象类,它有一些方法可以执行更新和渲染游戏之类的操作。我只是想知道,在扩展类中调用超级方法是否合适,还是应该使用其他方法Java 在抽象类中调用super,java,Java,首先,我是一名C#开发者哈哈 我的程序中有一个名为Game的抽象类,它有一些方法可以执行更新和渲染游戏之类的操作。我只是想知道,在扩展类中调用超级方法是否合适,还是应该使用其他方法 public void initialize() { // Do a bunch of stuff here // and call the base method super.initialize(); // Is this proper coding convention for abs
public void initialize()
{
// Do a bunch of stuff here
// and call the base method
super.initialize(); // Is this proper coding convention for abstract classes, or should I use something different?
}
抽象类可以扩展其他类(抽象或非抽象),因此这是有效的
public class MySuperClass {
public String getString(){
return "Hello";
}
}
public abstract class MyClass extends MySuperClass{
public String getString(){
return super.getString() + " world !";
}
}
如果在超类中将此方法定义为抽象,则不能调用它。它不依赖于抽象类
,而是依赖于抽象方法
public abstract class MySuperClass {
public abstract String getString();
}
给出一个编译错误:
无法直接访问MySuperClass中的抽象方法getString()
它既不是一般意义上的“适当”也不是“不适当”。您是否能够或应该这样做完全取决于您(或其他人)是如何设计超类的。如果您正在设计超类,您需要做的是决定:
- 是否需要“初始化”(或其他)超类,以及
- 是否应该在子类中方法的开始或结束时执行此操作
基本上由你来决定 是的,这是正确的调用首先,这与C无关,所以请删除C标记。第二,我不明白你的问题。为什么要调用super()?有原因吗?如果有,原因是什么?如果你没有理由,为什么要用它呢?如果你需要打电话给super,就这么做吧,没有什么错。