为什么JAVA中总喜欢拿抽象类和接口做比较,他们有可比性吗?或者相同点

来源:百度知道 编辑:UC知道 时间:2024/06/15 01:02:18
不明白。我觉得是2个不同的概念

抽象类只能被继承而且不用实现里面的所有方法,
但是借口的通用性强到家了
new一个接口就等于new到了实现它的类

接口只是定义方法,但是没有实现,如果继承这个接口的话,所有方法都必须去实现。如果暂时不需要去实现他,也必须定义一个还未实现的方法(方法里什么都不写);这样不是很麻烦?
比如1个接口定义了20个方法,我实现用1个,但是我必须把剩下19个方法全部定义(也就是19个方法里的内容什么都不写,但是必须要定义方法),你说麻烦不麻烦?

抽象类就解决了这个麻烦,他实现了接口里的部分方法,或者一个方法都没实现,只是定义了方法体。而你用到的类,继承这个抽象类就可以了,需要用哪个方法只需要实现就可以用了,如果抽象类已经实现直接用即可,而不用管其他的方法。

但是值得注意的是抽象类也是类。
你自己定义的类只能继承(extends)一个类,但是可以实现多个接口(implements)