是否存在需要一个没有定义方法的抽象类的用例?我偶然发现创建这样一个抽象类只是为了泛型,以便用户只传递此类的子类型。但我想知道是否有效或者有更好的方法。
最佳答案
拥有一个没有方法的抽象类是合法的,但完全没有意义。您使用抽象类来共享实现。如果一个类没有方法,则它没有可共享的实现。
如果您需要共享一些公共(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/