这里你提了个问题,感觉楼上的都答的差不多了,我来帮你总结并说些自己的观点吧。
第一个问题,接口和抽象类的区别。
区别一,接口中的的方法都是抽象的,但抽象类中的方法不一定都是抽象的。
区别二,抽象类是extends继承的,而接口是implements实现的。这一点很重要。要知道Java中只能单继承,但是Java中可以多实现;
这种设计解决了不少多继承可能出现的问题,而且我认为这样更贴近现实,你想一个人只可以有一个亲生父亲但同时可以有很多叔叔。
区别三,抽象类中的方法不一定都要重写,而接口中的方法都需要重写的。
第二个问题是:实践中怎么对二者进行选择。
这觉得应该是这样,当一个类可以做到不实现并就是让别的子类来继承的话那么最好能选择接口(interface),很明显接口会给程序带来更大的扩展性,
同时可以给一个类带来实现它的同时还可以继承一个别的类,何乐而不为呢?那么如果这个类中有一个或一个以上的方法必须要实现的话那就别无选择了.
|