接口和抽象类的区别:
抽象类是定义一些共性的东西,凡是这个类别的都会有的属性和方法
比如人就应该是一个抽象类,人都有身高属性,获得身高的方法也是一致的,如果定义为接口,那么男人和女人都要重写一遍获得身高的方法,这个不论是从代码利用,还是OO的理解上来说,都应该是抽象类
还有你说的吃饭做为接口并不合适,因为吃饭是一个共性的动作,是人就会吃饭,这个吃的方法应该是作为抽象方法,因为每个人吃饭的方法可能不同,有人吞着吃,有人咬着吃等等,所以就要继承人这个类的子类来具体实现。
而接口是定义一些特性的规则,也就是比较特殊的东西,比如有的人会跳舞,有的人会游泳
那么就应该定义一个跳舞的接口,一个游泳的接口
如果男人实现了跳舞的接口,那么这个男人就会跳舞了
但是并不是每个男人,或者每个人都会跳舞
行为的抽象,是规则,接口, (是特殊的个性)
事物的抽象,是共性,是抽象类(是一般的共性)
http://www.cnblogs.com/leoo2sk/archive/2008/04/10/1146447.html