java - 如何从抽象类中强制子类实现静态方法

标签 java

我有抽象类 Animal,然后我有像 Dog 和 Cat 这样的类,它们扩展了 Animal 类。

我想确保父类 Animal 的所有子类都有一个静态方法:getProperties。即使无法访问我的代码的其他人实现了一个新的 Animal 子类。

我希望它是静态的,因为 Dog 类的所有 Animals 都具有完全相同的属性(或者你不需要 Dog 来知道 Dog 的一般外观),因此它是一个调用的方法是有道理的类类型,而不是类实例。

这可能吗?

最佳答案

A static在 Java 中意味着方法(例如)与类的任何实例都不相关。它对所有实例都是通用的,它的实现只是嵌套在类中。

当我读到你的问题时,我相信你需要一个 abstract Animal 中的方法类。

public abstract class Animal {
    public abstract <some-return-type> getProperties();
}

在这种情况下,每个继承 Animal 的类必须提供 getProperties 的实现方法(在本例中不是 static)。

如果您希望它是静态的,只需将其设为静态(在 Animal 类中),但您将拥有一个单一共享 实现。

关于java - 如何从抽象类中强制子类实现静态方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17993998/

相关文章:

java - 将目录移出另一个目录的 Ant 目标

java - JTable 根据不在表中的属性对行进行排序

java - 无法实例化应用程序 java.lang.ClassNotFoundException

java - 使用菱形运算符创建通用数组

eclipse - 在 Eclipse 中导入库?

java - Grails 或 Play 如何检测更改和热重载类?

java - 为什么我的 if else 语句(即? : ) does not work?

java - 在 Tomcat 中托管 Netty 服务器是否可行/可取?

java - XML 解析器中出现此错误的原因是什么?

java - "css"在Spring MVC元素中如何使用 "jsp"?