关于java中的接口与抽象类的使用场合

来源:百度知道 编辑:UC知道 时间:2024/06/06 09:20:13
各位大虾,在java中什么时候该使用接口,什么时候该使用抽象类呢?先声明的是,我已经在网上看了好多文章了,可是他们都解释的不清楚,所以请不要随便粘一篇文章来回答我.谢谢
都说接口可以定义一系列的规范,所以遵循这些规范的类都必须实现接口中定义的服务,可是抽象类也可以用来定义一系列的抽象方法,这些方法也可以看成是一些规范,抽象类的子类必须实现这些抽象的方法.问题是,这么一来,接口所具有的功能抽象类也同样具有,还要接口做什么用呢?所以我很困惑,它们到底还有什么细节的地方是不同的,它们使用的场合到底有什么区别

首先,Java 允许单继承多接口。

从上面可以推断出接口是比继承更灵活的方式,因为类允许无限的接口实现。所以有可能尽量用接口。

但实际会出现一系列类在实现接口的时候也许有共同的某几个方法的实现,但另外一部分实现不同。此时用抽象类可以实现一部分共同方法,并将其他留到具体类实现。

另外需要占有一部分数据的时候,接口不提供此功能,所以也需要抽象类。

明白?

多数情况下推荐用接口

这样替换实现比较容易,否则的话,如果想替换该实现类,必须继承该抽象类,宝贵的名额也就失去了

当然情况比较复杂,有兴趣,可以来群里讨论

17451715