gpt4 book ai didi

java - HttpServlet层次解释

转载 作者:塔克拉玛干 更新时间:2023-11-01 19:09:26 24 4
gpt4 key购买 nike

我有点担心 java 层次模型的一些事实。

如 java 教程中所述:

an abstract class may not implement methods ( but they can) and if you extend from an abstract class you must implement all methods of superclass otherwise the new class must be abstract as well

但是现在,我正在学习 servlet 类,发现即使我没有实现 HttpServlet 中声明的所有方法,我的 servlet 也会运行,这是怎么回事?我在源代码中看到它们是 protected 方法(dopost、doget 等),甚至它说编译代码)但即使它们受到保护,我们如何扩展方法来创建新的 servlet,是因为公共(public)抽象 HTTPservlet 签名吗? .

我也觉得这个很不正常,什么意思?

  private static final
String METHOD_DELETE = "DELETE";
private static final
String METHOD_HEAD = "HEAD";
private static final
String METHOD_GET = "GET";

当您查看实现 servlet、servletconfig、serializable 的公共(public)抽象类 GenericServlet 时,所有其他理论都没有问题。其想法是将来有一个类不一定需要像 httpservlet 那样实现所有接口(interface)方法。

非常感谢您,我也希望能获得更清晰或更深入的 java 类建模资源。

When an abstract class is subclassed , 子类通常为其父类中的所有抽象方法 提供实现。但是,如果不是,则子类也必须声明为抽象的。

是的,我误解并误读了 httservlet,该规则仅适用于没有主体的抽象方法,只有签名,但 httpsevlet 方法不是抽象的,它们有实现,但已编译 =) 非常感谢,我明白为什么现在我们不需要实现 httpservlet 使用的那些方法和接口(interface)。

最佳答案

an abstract class may not implement methods ( but they can) and if you extend from an >abstract class you must implement all methods of superclass otherwise the new class must be >abstract as well

我想你误会了。

抽象类确实实现了方法,只是在将抽象类扩展为具体类之前,您无法使用这些方法。通常这样做是因为抽象类中的方法将在各种扩展类中重用。这样做的一些原因是删除重复和隐藏样板代码。

在 HttpServlet 中,您可以获得所描述方法的默认实现。当您想要扩展 HttpServlet 的行为以满足您的特定需求时,您可以覆盖您选择的那些。

关于java - HttpServlet层次解释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21668148/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com