当前位置: 首页 > 面试题库 >

具有所有具体方法的抽象类

归翔
2023-03-14
问题内容

当其中的所有方法都是具体的时,有人在声明类抽象时有一些实际的编程情况吗?


问题答案:

好吧,您可能正在使用模板方法模式,其中存在多个都具有默认实现的覆盖点,但是组合的默认实现本身不合法-任何功能实现都必须是子类。

(是的,我不喜欢模板方法模式;)



 类似资料:
  • 我知道抽象类可能包含抽象和具体方法(即主体实现)。我的问题是:子类可以从抽象超类继承/覆盖具体方法吗?其次,它们必须以实现抽象方法的方式实现具体方法吗?

  • 在JLS 8第8.4.8.1节中,有一条声明: 在某些参数化下,泛型超类C中的具体方法可以与该类中的抽象方法具有相同的签名。在这种情况下,具体方法是继承的,而抽象方法不是。然后应将继承的方法视为覆盖其来自C的抽象对等体。 有人能为泛型类提供这种参数化的例子吗?我不能。

  • 所以,问题是:我有一个抽象基类(),它有一个抽象成员方法()。方法返回布尔值,并应检查是否相等,但“相等”在子类中可能有不同的解释,因此我不重写或。因为它测试是否与另一个与其类型相同的对象相等,所以签名如下所示: 现在,当我试图在类中重写它时,假设“”,我不能使用作为参数的类型。我知道一般情况下这样做的原因和添加类型界限的建议,但是事情变得更加复杂,因为参数类型是它自己的类。 有没有什么平滑的方法

  • 想象一下,我有一个抽象类动物的方法: 然后我有一个类,用以下内容扩展这个抽象类: 我希望每个扩展Animal的类都有一个fetch()方法。然而,fetch方法为相关动物指定了一些独特的特征(狗的爪子、猫的爪子等)。例如,cat的fetch()将获取参数fetch(fellinecat kitty)并表示: 因此,抓取方法接受了扩展抽象类“动物”(因此是动物)的参数。我在“动物”中定义了抓取()方

  • 我正在尝试创建不同类型的生成器,每个生成器都将具有通用和唯一的方法,因此我正在尝试为其创建某种抽象,但我遇到了一个问题。 我的代码的一个示例是: 这个问题会出现在和建筑工人一起工作的时候,比方说我是这样做的 因此,我找到的解决此问题的唯一方法是始终重写main方法,然后对main方法执行超级调用,如下所示: 但如果常用的方法足够大,这可能会非常重复,也许这是一个糟糕的设计,但我想知道是否有一个更有

  • 来自spring参考文档 Spring建议您只使用@Transactional注释来注释具体的类(以及具体类的方法),而不是注释接口。您当然可以将@Transactional注释放置在接口(或接口方法)上,但只有在使用基于接口的代理时,它才会像您所期望的那样工作。Java注释不是从接口继承的,这意味着如果您使用的是基于类的代理(proxy-target-class=“true”)或基于编织的方面(