猿问

为什么静态方法不能在Java中抽象

为什么静态方法不能在Java中抽象

问题是在Java中,为什么我不能定义一个抽象的静态方法?例如

abstract class foo {
    abstract void bar( ); // <-- this is ok
    abstract static void bar2(); //<-- this isn't why?}


弑天下
浏览 521回答 3
3回答

MYYA

因为“抽象”的意思是:“不实现任何功能”,而“静态”的意思是:“即使没有对象实例,也有功能”。这是一个合乎逻辑的矛盾。

拉莫斯之舞

糟糕的语言设计。直接调用静态抽象方法比仅为使用该抽象方法创建实例要有效得多。尤其是当使用抽象类作为不能扩展的解决方法时,这是另一个糟糕的设计示例。希望他们在下一个版本中解决这些限制。

MMTTMM

不能覆盖静态方法,因此使其抽象将毫无意义。此外,抽象类中的静态方法将属于该类,而不是重写类,因此无论如何都不能使用。
随时随地看视频慕课网APP

相关分类

Java
我要回答