强制 toString() 在子类中实现

2022-09-03 17:22:44

我有一个抽象的父类,我希望它强制所有子类实现toString()方法。

但是,将:

public abstract String toString();

导致编译错误:

Repetitive method name/signature for method 'java.lang.String toString()' in class ...

我相信这可能是由于时髦已经定义了toString。

谢谢


答案 1

这对我有用。这是新的还是其他人只是错过了它?

public abstract class Filterable
{
  @Override
  public abstract String toString();
}

public class ABC extends Filterable
{
  // Won't compile without toString();
}

答案 2

是类的一部分,该类已经具有默认实现。因此,您基本上不能强制子类实现它。如果你想强迫这种行为(不知道为什么),那么你可以做一些类似下面的事情toString()java.lang.Object

public class abstract SuperClass {
  public abstract String myToString();

  public String toString() {
    return myToString();
  }
}

推荐