我正在开发一个应用程序,我在其中使用了几种不同的服务。这些服务通常包含相同的方法。在某些情况下,我可以将这些方法放在另一个类中,但在其他情况下,它们依赖于只能在扩展活动或服务的类中运行的方法。
本质上,我想通过创建一个包含这些方法的基础服务,然后在所有其他服务中扩展它来最大限度地减少代码量(从而减少工作量和可能的复杂性)。
我在网上找不到太多信息。这可能吗?如果是这样,我该怎么做?我有一个裂缝,但它引发了一个未发现异常的活动。
谢谢!
看看这个关于抽象类的例子。尽管根据您所描述的内容,Effective Java更喜欢接口而不是抽象类,但这听起来像是抽象类有意义的情况。
当类成员将实现一组公共特性但实际实现不同时,抽象类很有用。经典的例子是 GraphicObject - 所有的形状都需要一个 draw 方法,但是正方形如何绘制自身与圆形不同。
基本上,这个想法是建立一个由所有方法组成的框架,这些方法由将扩展抽象类的服务共享。然后,您可以在扩展抽象类的每个类中控制这些方法的实现。您还可以将特定服务所需的任何其他方法添加到该类实现中。
只要你的新类肯定只继承一个类。单一继承是 Java 语言的限制。您的类层次结构可以具有任意深度,但每个类只能从一个父级继承。