我的一个 friend 问我他是否可以在 Java 中重写静态变量,我很震惊他竟然想到了如此奇怪的编码方式。然后他向我解释说这在 PHP 中是可能的,我想知道优秀的开发人员是否应该这样做有充分的理由。在我看来,静态成员的特征是类成员,与对象无关,因此它们与类的派生无关,但我无法说服他,因为他是如此天真和固执。
任何人都可以对这整件事提出一个很好的论据,或者让我相信这是一个很酷的功能吗?
最佳答案
静态继承没有任何意义。并不是说不可能,只是你没有从中得到任何好处。
通过正常继承,您可以获得对同一事物有不同实现的好处,并且不知道/关心将使用哪个实现。使用静态继承,您没有可操作的对象,并且使用的是类名,因此您无法利用多态性。
例如如果您正在调用 Child.someMethod() ,您将与子级的实现相关联,如果您实际上只需要父级,则可以只执行 Parent.someMethod() 。如果您需要向 Parent 实现添加一些内容,您只需创建一个 Child.someOtherMethod() ,在其中调用 Parent 并在之后执行一些其他操作。静态继承只是语法糖...
关于java - 重载静态变量是否需要静态后期绑定(bind)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8023503/