你们可以解释一下我应该在哪种情况下使用Interface,以及我应该选择抽象类......?请记住,我不是在询问Interface和Abstract类之间的区别。
答案 0 :(得分:1)
如果您发现对象之间存在任何关系,则可以使用abstract
例如:Bird, Aeroplane, Paper Rocket
这些都是可以飞行的,但这些对象之间没有任何Is a relationship
,因此您可以使用interface
而不是abstract
,
因为鸟类,飞机和纸质火箭都可以飞行,但飞行方式不同。
当然,谷歌有很多不同之处。
答案 1 :(得分:0)
在以下情况下使用Abstract class
:您有一些必须在一个地方实施的常用功能(方法),而其他具体类只能使用它。
在以下情况下使用Interface
:没有常用功能。每个具体类都有自己的功能实现。
答案 2 :(得分:0)
我建议坚持以下规则:
code-reuse
否则使用接口和委托。但是,与软件设计一样,您必须针对每种具体情况做出正确的决定。如果您必须应用限制/规则但需要一些灵活性,请考虑使用策略模式而不是继承。
抽象类的问题在于你不能从多个类继承。因此,如果您需要is
类型为A
且B
并且两者都是抽象类的类型,您如何实现这一目标?接口是开放的,可以不受任何限制地以任何其他类型实现。
答案 3 :(得分:-1)
我们首先要优先考虑。如果我们必须在该类中编写一些常用功能,那么只有那时你才能去抽象类。否则使用界面。因为我们可以实现接口的数量但是我们只能扩展一个类,所以将来你必须去接口而不是抽象类。