在抽象类和接口之间进行选择

时间:2014-06-13 07:13:31

标签: class interface abstract-class abstract

在我的两个流程中'功能,有一个共同的功能来合并文件。我不需要坚持任何进程都有接口的方法。而且,这两个过程也是独立的。那么,我可以使用Abstract类并在该抽象类中实现它吗?我也不需要任何抽象方法。

1 个答案:

答案 0 :(得分:0)

当子类与基类之间存在IS-A关系时,将使用继承。我不认为这是这种情况。你没有指定语言,但是从你的个人资料中我猜你使用的是Java。因此,如果您使用抽象类,您将来又无法从其他更合适的类继承。

您可以使用合成代替继承。这意味着您创建了一个常规文件合并类,该类具有此方法来合并文件。在您希望拥有此功能的类中,您只需实例化此新文件合并类。它允许你将来继承其他类。

如果您想通知全世界这些类可以合并文件(使用多态),并且您使用Java 8,您可以在接口内创建default方法并实现此接口而不覆盖此默认方法。但我认为在这种情况下组合会更好。