Inheritance 为什么javax.servlet.GenericServlet应该实现javax.servlet.ServletConfig?

Inheritance 为什么javax.servlet.GenericServlet应该实现javax.servlet.ServletConfig?,inheritance,servlets,jakarta-ee,Inheritance,Servlets,Jakarta Ee,我浏览了servlet-api.jar源代码,发现javax.servlet.GenericServlet实现了javax.servlet.ServletConfig(让我完全困惑) 现在,我并不自夸自己是OOP学者,但我确实记得我读过一篇文章,虽然OOP提供了继承的概念,但继承作为一种功能应该只在孩子与父母有IS-a关系时才应用 “GenericServlet是一个ServletConfig”听起来不太合适。有人知道为什么会做出这样的设计决定吗?(除了向GenericServlet公开Serv

我浏览了servlet-api.jar源代码,发现javax.servlet.GenericServlet实现了javax.servlet.ServletConfig(让我完全困惑)

现在,我并不自夸自己是OOP学者,但我确实记得我读过一篇文章,虽然OOP提供了继承的概念,但继承作为一种功能应该只在孩子与父母有IS-a关系时才应用


“GenericServlet是一个ServletConfig”听起来不太合适。有人知道为什么会做出这样的设计决定吗?(除了向GenericServlet公开ServletConfig的方法和属性之外)

实现和扩展是不同的。实现意味着GenericServlet必须实现ServletConfig中定义的接口


例如,GenericServlet将具有ServletConfig接口,因此任何使用ServletConfig接口配置Servlet的东西都可以配置GenericServlet。

实现和扩展是不同的。实现意味着GenericServlet必须实现ServletConfig中定义的接口


例如,GenericServlet将具有ServletConfig接口,因此任何使用ServletConfig接口来配置Servlet的东西都可以配置GenericServlet。

,因为它是一个名称不正确的接口。我可能更愿意将其称为
ConfigServlet
ServletConfigurator

,因为它是一个名称很差的接口。我可能更愿意将其称为
ConfigServlet
ServletConfigurator

我所期望的是GenericServlet提供了一个ServletConfig实例,这意味着“GenericServlet具有-A ServletConfig”。对我来说,这听起来更好。我所期望的是GenericServlet提供一个ServletConfig实例,这意味着“GenericServlet有一个ServletConfig”。这对我来说更好。我喜欢你的第一个建议:
ConfigServlet
。我喜欢你的第一个建议:
ConfigServlet