abstract 抽象类
1、约束,有人帮我们实现
2、abstract,抽象方法,只有方法名字,没有方法的实现!
3、抽象类的所有方法,继承了它的子类必须全部实现,除非子类也是一个抽象方法,就让子子类去实现。
抽象类的特点:
1、不能new这个抽象类,只能靠子类去实现它:约束!
2、抽象类中可以写普通的方法
3、抽象方法必须写在抽象类中,抽象的抽象:约束~。
抽象类存在的意义:共有的方法抽象出来,防止代码重复,提高开发效率。
interface接口
1、普通类:只有具体的实现
2、抽象类:具体实现和规范都有
3、接口:只有规范!!专业的约束,约束和实现分离:面向接口编程
1、接口就是规范,定义的是一组规则,体现了现实世界中“如果你是…则必须能…”的思想。如果你是天使,则必须能飞。如果你是汽车,则必须能跑。
2、接口的本质是契约,就像现实中的法律一样,制定好以后大家去遵守。
3、OO精髓,是对对象的抽象,最能体现这一点的就是接口。为什么我们讨论设计模式都只针对具备了抽象能力的语言(比如c++、java、c#等),就是因为设计模式所研究的,实际上就是如何合理的去抽象。