使用抽象类还是接口(Java)

使用抽象类还是接口(Java)

“要针对接口编程,不要针对实现编程。”那么,在java的世界里,这里的接口指的是什么呢?无非是以下两种实现方式:

方式1)抽象类(只能有一个超类)

方式2)接口Interface(可以继承多个Interface)

那么何时使用抽象类,,何时使用接口呢?回答这个问题,得搞清楚二者各自的优势。说白了是为了更好的应对变化。

一个是接口本身的变化,一个是接口实现的变化。

对于Interface而言,能够很好的应对接口实现的变化,但是很难应对接口本身的变化。一旦Interface发生变化,所有的实现都需要同时变化。如果实现类很多,那将是噩梦,甚至是不可行。

对于抽象类而言,接口本身的变化可以轻松应对。只要在抽象类中提供默认实现就可以轻松增加行为。

但是,我们也要看到,抽象类的实现存在短处。就是实现类必须对抽象类忠心不二。如果需要以另一种视角来看待同一个实现类,就只能使用Interface了。换句话说,Interface带来了多角度的好处。

Interface和抽象类并不是互斥的。你可以提供一个接口说“你可以使用这些功能”,在提供一个超类说“这是一种实现方式”。此时使用者应该应用接口类型,这样未来的维护者就可以根据需要随时替换新的实现。

posted on

(评论功能已被博主禁用)

Copyright ©2013 廉颇老矣 Powered by: 博客园 模板提供:沪江博客

勤勉是通往胜利的必经之路。要是由于胆怯艰难而去另觅佳径,

使用抽象类还是接口(Java)

相关文章:

你感兴趣的文章:

标签云: