抽象类是对一类事物的抽象,是就其根源的抽象,而接口是对行为得到抽象。
就构成而言,抽象类属于类,里面存储的是对象的属性及方法,而接口定义的是行为。
如动物,狗跟猫都是动物,父类并不知道是什么动物,只知道动物都吃东西,抽象出一个方法。抽象类就是从子类中抽象出相似的方法。
而接口在定义时不需要知道子类,就如一列列公共清单,你瞧着有用,那就继承过去,没用就继承别的。
还有一个区别,就是抽象类中也可以定义具体的方法。
使用两者时要分清对象的属性与行为,别站错队。
在应用上,当你需要添加一个行为时,可以在当前抽象类添加具体实现的方法,如此继承此抽象类的子类都能实现这个方法,而接口需要重新写一个接口实现它,因为你添加的话,无数个实现此接口的类都需要重写此方法。 |
|