我想让子类的静态方法也符合固定的规范,提供差异功能,父类的静态方法来提供相同功能。
比如说,工具类到底写成单例的还是静态方法的。如果每个工具类写成单例的好慢烦,如果写成静态的,今天我实现了一个 JSON 工具类,明天我又换了一个库,重写了一个 JSON 工具类,怎么切换和公用代码。
为什么 java 中不让静态方法拥有和普通方法的集成覆盖重写行为呢?我觉得蛮好的啊?只是因为不符合某种逻辑?
你知道哪种编程语言有这种特性。
我想让子类的静态方法也符合固定的规范,提供差异功能,父类的静态方法来提供相同功能。
比如说,工具类到底写成单例的还是静态方法的。如果每个工具类写成单例的好慢烦,如果写成静态的,今天我实现了一个 JSON 工具类,明天我又换了一个库,重写了一个 JSON 工具类,怎么切换和公用代码。
为什么 java 中不让静态方法拥有和普通方法的集成覆盖重写行为呢?我觉得蛮好的啊?只是因为不符合某种逻辑?
你知道哪种编程语言有这种特性。
首先。你要理解java中什么是静态方法。重写在一定程度上来说就是多态的体现,而java中静态方法是与类绑定的。也就是说,当这个类被加载的时候,类中的静态方法也随之加载,你所说的继承重写又有什么意义呢?
15 回答8.2k 阅读
8 回答6k 阅读
1 回答4.1k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答3.2k 阅读
2 回答3.9k 阅读
1 回答2.2k 阅读✓ 已解决
用单例代替静态就好,
事实上,面向对象并不需要静态,
kotlin之类的这个支持就很好,
用伴生对象或者单例对象代替静态,
可以让伴生对象实现那个接口,
https://kotlinlang.org/docs/r...