1、公共的行为定义成接口(接口定义能做什么),然后公共的实现定义成抽象类。抽象类是实现的复用,接口定义的是公共行为的复用。
2、抽象类可以给出方法的实现,也可以不给出(abstract);接口所定义的方法一定不能给出实现代码。接口只是定义能做什么,没法定义怎么做。
3、一个类只能有一个父类,一个类可以实现多个接口。(非常重要的不同点)。
4、同样是override的方法,virtual和abstract的区别是什么? 父类的virtual有自己的实现,自己可以不override,也可以override,感觉父类的实现够用就不override,感觉不够用就override;abstract不能有自己的实现,(具体非abstract的)子类必须要实现。
5、接口和抽象类在使用方面最主要的区别:接口提供公共的行为(能干什么);抽象类提供公共的实现(怎么干)。
6、(1)委托约束方法必须有哪些参数和返回值。
(2)接口约束类必须有哪些方法。类可以有别的方法。