interface表示行为,比如flyable
abstract class表示较为抽象的概念,通常这种概念在某些方面比较具体,但是有些方面无法给出具体的实现,比如bird。所有的bird都有翅膀,有喙,但是到底是什么样的翅膀,什么样的喙是不能确定的。hawk类继承自bird类,由于hawk的翅膀类型,喙类型都是可以确定的,所以hawk类是具体类
hawk类实现flyable接口,所以hawk类必须提供public 的fly方法,以实现飞翔。体会一下这两句话的区别:
hawk是一种bird
hawk具有flyable的能力
abstract class表示较为抽象的概念,通常这种概念在某些方面比较具体,但是有些方面无法给出具体的实现,比如bird。所有的bird都有翅膀,有喙,但是到底是什么样的翅膀,什么样的喙是不能确定的。hawk类继承自bird类,由于hawk的翅膀类型,喙类型都是可以确定的,所以hawk类是具体类
hawk类实现flyable接口,所以hawk类必须提供public 的fly方法,以实现飞翔。体会一下这两句话的区别:
hawk是一种bird
hawk具有flyable的能力
其他的abstract终究是个class不能多重继承,而接口是个interface是可以多重继承的。http://expert.csdn.net/Expert/topic/2845/2845122.xml?temp=.4305994
http://expert.csdn.net/Expert/topic/2715/2715491.xml?temp=.3493006
http://expert.csdn.net/Expert/topic/2723/2723285.xml?temp=.1941492
http://expert.csdn.net/Expert/topic/2671/2671041.xml?temp=.8485834