使用抽象类和接口
如果我有三个类,
class A
class B extends A
class C extends A
使用抽象类或接口会给我带来任何类型的错误或影响我实现程序的方式吗?
If I have three classes
class A
class B extends A
class C extends A
Would using abstract classes or interfaces give me any type of errors or affect the way I implement the program?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
除非您需要共享实现,否则请优先使用接口。
如果您需要共享实现,请仔细考虑抽象类是否是实现此目的的正确方法。
继承是一个强大的工具,但很容易造成无法维护的混乱(我在这里感到内疚)。
但要回答你的问题 - 不,这个设置中没有任何固有的东西会导致“错误”。
Unless you need to share implementation, favor interfaces.
If you need to share implementation, think carefully if an abstract class is the right way to accomplish this.
Inheritance is a powerful tool, but can easily create an unmaintainable mess (I have been guilty here).
But to answer your question - no, there is nothing inherent in this setup that would cause an "error".
通常,只要有可能,您就应该更喜欢接口。如果您使用类,Java 缺乏多重继承很快就会成为限制因素。
You should generally prefer interfaces whenever you can. Java's lack of multiple inheritance quickly becomes a limiting factor if you use classes for that.
是的。抽象类以更短的重用实现方式换取了为同一对象提供多个接口的灵活性。
除非您正在玩代码高尔夫,否则选择接口的灵活性通常是更好的选择。
Yes. Abstract classes trade a shorter way of reusing implementation for the flexibility to provide multiple interfaces to the same object.
Unless you're playing code-golf, choosing the flexibility of interfaces is usually the better option.