我所理解的接口和抽象类
参考:http://www.cnblogs.com/huihui-gohay/archive/2009/12/13/1623070.html
在实践过程中,抽象类和接口都经常用到。但是,对于什么情况下该用抽象类,什么情况下该用接口,总是有点搞不清楚。
于是,在阅读别人对着两者理解之后,终于对两者的区别有了更进一步的理解。
有关这两者的一些基本区别,可以参考上面的文章。这里我只介绍下对于抽象和接口该在什么情况下使用的理解。
抽象类重点在于对于属性和方法的继承;而接口则重在多个类(可能他们之间毫无联系)对同一种方法或者属性的描述,体现了多态性。
抽象出一个类(类),定义一个抽象方法(判断是否会飞)
1、抽象类
例如:抽象出一个鸟类。对于鸟类,抽象出一个方法。用来判断这种鸟会不会飞。
由于鸟类中的canFly是抽象方法,因此所有继承鸟类的子类都必须实现这个canFly方法。
public interface IFly {public abstract boolean canFly();}/** * 鸟 */public class Bird implements IFly{@Overridepublic boolean canFly() {// TODO Auto-generated method stubreturn false;}}/** * 飞机 * */public class Airplane implements IFly {@Overridepublic boolean canFly() {// TODO Auto-generated method stubreturn true;}}