你能覆盖抽象超类中的方法,在子类中将其定义为 Java 中的抽象方法吗?



这听起来像是一个愚蠢的问题,但我真的挣扎了很长时间才自己找出答案。那么这可能吗?

例如:

public class SuperClass {
public void methodToOverride(){
System.out.println("Some text");
}  
}
public class SubClass extends SuperClass{
abstract void methodToOverride();
}

要使其正常工作,您只需要进行一些调整。首先,子类必须是抽象的,这样它才能有抽象的方法。

其次,methodToOverride 方法的可见性不能低于其父方法的可见性,因此您必须将其设置为公共。

然后它应该按预期编译和运行。下面是一个示例:

public class SuperClass {
public void methodToOverride(){
System.out.println("Some text");
}
}
public abstract class SubClass extends SuperClass{
public abstract void methodToOverride();
}
public class OtherClass extends SubClass {
@Override
public void methodToOverride() {
// new logic
}
}

话虽如此,这肯定是一个奇怪的建模......

希望对您有所帮助!

最新更新