1.回顾以前数据结构的知识,所有排序算法的基本操作是什么?这个基本操作和Comparable接口又有什么关系?这个基本操作得到的结果有哪几种?
基本操作:比较与移动,Comparable接口可以返回比较结果,得到三种结果,可根据实际情况,返回正数(大于),负数(小于),0(等于)。
2.详细描述:为什么某个类实现了Comparable接口,就可以对该类的集合(如数组、ArrayList)使用Arrays.sort进行排序?Comparator接口相较于Comparable接口有什么优势?
Comparable接口可返回比较结果,编译器再调用排序算法的移动函数进行排序;可以新建实现实现Comparator的类来返回不同比较结果,不想Comparable接口只能在类内部的compareto方法实现一种比较方式。
3.你觉得为什么有了抽象类还需要接口?接口相较于继承有什么不同,体现了什么关系?
抽象类是用来继承的,子类可复用父类代码,并且拥有父类的属性,而接口是用来实现的,如果要体现的是相同行为则继承接口,Has-a关系,可实现多个接口,但只能单继承(并要符合逻辑关系),接口的功能必须全部实现,继承抽象类,必须重写其所有抽象方法,否则也是抽象类。