代码之家  ›  专栏  ›  技术社区  ›  Hari Menon

如何强制Java中的方法被重写?

  •  45
  • Hari Menon  · 技术社区  · 15 年前

    我必须创建许多非常相似的类,它们之间只有一个方法不同。所以我认为创建抽象类是实现这一点的一个好方法。但是我要重写的方法(比如,method foo())没有默认行为。我不想保留任何默认实现,强制所有扩展类实现这个方法。我该怎么做?

    5 回复  |  直到 9 年前
        1
  •  77
  •   Pablo Santa Cruz    15 年前

    你需要一个 摘要 基类上的方法:

    public abstract class BaseClass {
        public abstract void foo();
    }
    

    这样,就不会指定默认行为 强制非抽象类继承自 BaseClass 为指定实现 foo .

        2
  •  11
  •   Jens Hoffmann    10 年前

    只需将foo()定义为基类中的抽象方法:

    public abstract class Bar {
       abstract void foo();
    }
    

    The Java™ Tutorials (Interfaces and Inheritance) 更多信息。

        3
  •  9
  •   Sean Patrick Floyd    15 年前

    把方法抽象化。

    这将强制所有子类实现它,即使它是在抽象类的超级类中实现的。

    public abstract void foo();
    
        4
  •  5
  •   Buhake Sindi Tesnep    15 年前

    如果您有一个抽象类,那么就创建您的方法(比如 foo 摘要)

    public abstract void foo();
    

    那么所有子类都必须重写 .

        5
  •  4
  •   vitaut    15 年前

    做这个方法 abstract .