有没有理由在抽象类中使用空的具体方法? - java

我最近正在浏览一些开源代码PicketLink代码。如果查看this class,您将在抽象类中看到许多不做任何事情的具体方法。有什么目的吗?

我考虑了两件事:

  • 如果方法需要被子类覆盖并且未在父抽象类中定义,那么为什么不简单地使其抽象化呢?
  • 如果实际上只有一些子类需要实现该方法,这是否表示需要对类层次结构进行重组,以使子类不会被迫拥有不适用的方法?
  • 参考方案

    尽管不是最常见的情况,但有时在template method的上下文中很方便。在这种情况下,存在一种定义流程的方法,将某些部分的具体实现留给了其子类。在某些情况下,默认的具体行为是不执行任何操作,将基类中的具体方法保留为空,但允许通过覆盖子类进行自定义。

    高温超导

    java:继承 - java

    有哪些替代继承的方法? java大神给出的解决方案 有效的Java:偏重于继承而不是继承。 (这实际上也来自“四人帮”)。他提出的理由是,如果扩展类未明确设计为继承,则继承会引起很多不正常的副作用。例如,对super.someMethod()的任何调用都可以引导您通过未知代码的意外路径。取而代之的是,持有对本来应该扩展的类的引用,然后委托给它。这是与Eric…

    Java:静态字段在内存中的哪个位置? - java

    如果我们将对象存储在对象的静态字段中,那么JVM如何为它分配内存?它是否存在于“隐式”(不确定我是否使用正确的单词)类对象中?静态字段与对象字段有何不同? 参考方案 静态字段是类变量,并且在该类的所有实例之间共享。实例变量(或我认为您引用它们的对象字段)属于类的各个实例,并且不共享。至于它们存储在内存中的位置将根据JVM的实现而定,因此没有理由需要两个不同的…

    JAVA 8具有任何匹配属性的对象的过滤器列表 - java

    我的要求是通过匹配任何属性的字符串来过滤对象列表。例如,假设Contact类具有三个属性:街道,城市,电话。我知道java流过滤器是如何工作的,在这里我必须将输入字符串与每个属性进行比较,如下所示:contactList.stream().filter(contact -> contact.getStreet().equals("dubai&…

    Java:正则表达式模式匹配器是否有大小限制? - java

    我的模式类似于OR:“word1 | word2 | word3”我大约有800个字。可能有问题吗? 参考方案 您仅受记忆和理智的限制。 :)

    Java-非泛型类扩展了泛型类 - java

    我想知道如何(如果可能)创建一个类,它是泛型类的特定类型。具体来说,我有一个实现所有必需方法的abstract class Stack<Type>,我想有一个class StackInteger,而StackInteger的实例也是Stack<Integer>的实例。我看到我可以做这样的事情:class StackInteger { …