对java中继承、接口、组合的思考

时间:2023-03-08 20:29:59

1.在c++中有继承和多重继承,而java中只有单继承。继承的好处在于可以复用一些东西,但缺陷在于后续不好扩展。此外,可读性方面继承也不好。

2.java中多了一个接口的概念,而接口的功能和其名字表达的一样,就是在说这是一个接口,传什么参数,实现什么功能,返回什么结果。至于怎么实现,那就是具体的类的事情了。

3.继承和接口的区别:继承可以写一个完整的方法,而接口只是一个方法声明而已。  如果复用的代码除了方法声明还有方法体,那继承比较合适。  如果只是方法声明一样,具体的实现方法各自不同,那接口比较合适。

4.如果想复用一段代码,继承比接口合适,但继承的扩展性和可读性又比较差。可以使用组合,将这些公共方法写到一个类中,然后将该类作为一个成员变量来使用。这样就达到了复用的目的,可读性和可扩展性也得到了提升。

5.由此反观编程的几个原则:(根据记忆写的,具体的不清楚了,可能有出入,原则有多条,这里只写相关的两条)

1)针对接口编程;针对抽象编程;

2)优先使用组合而不是继承。

所以从编程原则上看,如何以及何时使用继承、接口、组合,就已经有了答案。

6.不管是C++还是java,都是面向对象的。只要是面向对象的语言,其特点就离不开抽象、封装、继承、多态。在编程时,要按照编程原则来进行尽可能的优化编程(前提保证功能正确,性能达标),但这些知识点必须全面理解,避免别人写的代码自己看不懂。

总结:要时刻提醒自己,针对接口编程,多用组合,少用继承。