使用抽象类和接口

发布于 2024-08-24 01:10:46 字数 129 浏览 5 评论 0原文

如果我有三个类,

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

不回头走下去 2024-08-31 01:10:46

除非您需要共享实现,否则请优先使用接口。

如果您需要共享实现,请仔细考虑抽象类是否是实现此目的的正确方法。

继承是一个强大的工具,但很容易造成无法维护的混乱(我在这里感到内疚)。

但要回答你的问题 - 不,这个设置中没有任何固有的东西会导致“错误”。

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".

黯然 2024-08-31 01:10:46

通常,只要有可能,您就应该更喜欢接口。如果您使用类,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.

留蓝 2024-08-31 01:10:46

是的。抽象类以更短的重用实现方式换取了为同一对象提供多个接口的灵活性。

除非您正在玩代码高尔夫,否则选择接口的灵活性通常是更好的选择。

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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文