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

为什么HttpServlet类被声明为抽象的?

姬浩渺
2023-03-14
问题内容

为什么HttpServlet即使该类中没有抽象方法,也将类声明为抽象?


问题答案:

这是因为它遵循模板方法设计模式。这些doXxx()方法具有返回HTTP
405 未实现方法
错误的所有默认行为。如果所有这些方法都是抽象的,那么即使您的业务需求根本不需要它们,也将不得不覆盖所有这些方法。这只会导致样板代码和不确定/不直观的行为。



 类似资料:
  • 问题内容: 将接口声明为抽象有什么意义?接口方法也是如此。有什么意义吗? 例如。 问题答案: 您在哪里遇到过已发布的代码块,任何旧的Java代码库? 这就是 JLS不得不说: 9.1.1.1抽象接口: 每个接口都是隐式抽象的。该修饰符已过时,不应在新程序中使用。 9.4抽象方法声明: 为了与Java平台的较早版本兼容,出于风格考虑,允许但不鼓励为接口中声明的方法冗余地指定abstract修饰符。

  • 问题内容: 我了解抽象类中的方法都可以是抽象的,也可以不是。但是,为什么不能在“普通”的非抽象类中创建抽象方法呢? 在此先感谢您的解释! 问题答案: 抽象 方法从根本上说,该方法没有实现,需要在 子类中 实现。但是,如果您在 非抽象 类中具有 抽象 方法,则可以实例化该类并获取一个对象,该对象将具有未实现的方法,您将无法调用该方法。 __

  • 我正在讨论以下问题:使用Java 8的可选和stream::FlatMap并希望向自定义的添加一个方法,然后检查它是否工作。 更准确地说,我希望向我的添加一个。如果不存在值,则返回一个空流,如果存在,则返回一个包含单个元素的流。 但是,我得出的结论是,声明为final。 为什么会这样呢?有一些类没有声明为final,我个人认为这里没有理由声明final。 作为第二个问题,为什么不是所有的方法都是f

  • 问题内容: 是具有所有已实现方法的抽象类。为什么是抽象的? 我得到的最常见答案是,限制的实例化。但是还有其他方法可以执行此操作,例如私有构造函数将限制实例化。 我了解他们遵循模板方法设计模式。如果某些方法是抽象的,那么即使他的业务逻辑不需要它们,用户也将最终实现所有这些方法。 但是,如果不是抽象的,用户仍然可以扩展它并覆盖require方法。 至少从“抽象”一词的字典含义来看,使用所有已实现方法的

  • 使用Spring框架实现以下场景 请注意:方法是公共的,在不同的类中。省略了参数和不相关的东西。SaveNotAllowedException被选中异常。 在saveRow方法上,我声明我希望对检查的异常进行回滚。在createOrder方法中,我捕获该异常并执行相关工作来处理该情况。但由于这是一个预期的回滚,我希望Spring也将其视为预期的回滚,并让我尝试一下。 有些人认为这是一个特例。据我理

  • 问题内容: 为什么不将类声明为抽象类? 为了使Object有用,肯定需要增加状态或行为,Object类是一个抽象,因此应该将其声明为abstract … 为什么他们选择不这样做? 问题答案: 安德,我认为您正在以不必要的抽象程度接近此目标(双关不是故意的)。我认为这种(IMHO)不必要的抽象级别是造成此处“问题”的原因。也许您是从数学理论方法来解决这个问题的,而我们中的许多人都是从“试图解决问题的