java - 没有方法的抽象类

标签 java abstract-class

是否存在需要一个没有定义方法的抽象类的用例?我偶然发现创建这样一个抽象类只是为了泛型,以便用户只传递此类的子类型。但我想知道是否有效或者有更好的方法。

最佳答案

拥有一个没有方法的抽象类是合法的,但完全没有意义。您使用抽象类来共享实现。如果一个类没有方法,则它没有可共享的实现。

如果您需要共享一些公共(public)变量(我假设您的抽象类至少有一些字段,否则它完全是空的),那么最好使用组合和接口(interface),如下所示:

class CommonData {
    // Some getters and setters for items that you wish to share
}
interface WithCommonData {
    CommonData getCommonData();
}

您的类可以将公共(public)数据作为成员,并实现接口(interface)WithCommonData,使您可以访问公共(public)数据,并让类保持其继承结构。

如果您需要“标记”一个用户类,那么使用“标记接口(interface)”(即没有方法的接口(interface))会更加灵活,因为用户保留了构建自己的继承链的能力。

关于java - 没有方法的抽象类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23133038/

相关文章:

c++ - Eigen 矩阵和 vector 之上的抽象类

java - JPA Hibernate 一对多

java - 从 Builder 和 Notifier 访问全局配置的数据

java - 这段Java代码是什么意思?

.net - 如何在F#中声明循环依赖的抽象类

VB.net抽象类理解

java - 正则表达式正好 n 或 m 次

java - 从监听器列表中删除监听器

java - Hibernate 在外键 @oneToone 映射中获取 NULL

c++ - 如何使用 C 风格在 C++ 中正确深度复制抽象类数组的二维数组