java 为什么没有静态方法接口,有没有哪门语言有静态方法接口。

我想让子类的静态方法也符合固定的规范,提供差异功能,父类的静态方法来提供相同功能。

比如说,工具类到底写成单例的还是静态方法的。如果每个工具类写成单例的好慢烦,如果写成静态的,今天我实现了一个 JSON 工具类,明天我又换了一个库,重写了一个 JSON 工具类,怎么切换和公用代码。

为什么 java 中不让静态方法拥有和普通方法的集成覆盖重写行为呢?我觉得蛮好的啊?只是因为不符合某种逻辑?

你知道哪种编程语言有这种特性。

阅读 3.6k
2 个回答

用单例代替静态就好,
事实上,面向对象并不需要静态,
kotlin之类的这个支持就很好,
用伴生对象或者单例对象代替静态,
可以让伴生对象实现那个接口,

https://kotlinlang.org/docs/r...

interface Factory<T> {
    fun create(): T
}


class MyClass {
    companion object : Factory<MyClass> {
        override fun create(): MyClass = MyClass()
    }
}

首先。你要理解java中什么是静态方法。重写在一定程度上来说就是多态的体现,而java中静态方法是与类绑定的。也就是说,当这个类被加载的时候,类中的静态方法也随之加载,你所说的继承重写又有什么意义呢?

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题