区分抽象类和接口类是否重要?
抽象类只是一个接口类,有一些具体的方法。
如果抽象类与Interface类具有相同的前缀"I“,则可以通过引入新的逻辑等方法,轻松地将接口类升级为抽象类。
更新
我问这个问题的原因是,当项目增长时,界面会施加一些限制。例如,
如果一个接口已经被上千个类“实现”了,并且在某个时候我们需要在基类中引入一些新的方法,那么我们将不得不修复所有的子类。
抽象类在功能扩展方面提供了灵活性,因为它可以在不影响子类的情况下提供默认实现。
这就是为什么我想要交替地使用接口和抽象类。
ICar car = new Merz(); // ICar can be interface or abstract class但是,当我再次考虑这个问题时,我们仍然需要更改所有的子类,因为类声明迫使我们在一开始就使用“扩展”或“实现”。
因此,我认为在抽象/接口类上没有进行多态的选择。
发布于 2009-09-03 06:28:01
我和我的同事们正在使用Java的漏洞日
抽象类实现了大多数常用的接口方法或最常用的util方法。
您不必从抽象类中扩展。如果实现的方法对要生成的类有用,则应扩展抽象类。
否则,您应该实现接口并再次实现这些方法。
您只从一个类扩展,所以如果您只能使用50%的方法,那么从抽象类扩展时就没有意义。
https://stackoverflow.com/questions/1371639
复制相似问题