标签:
老王是个高富帅。老王是具体类型,高富帅是抽象类,接口是高、富、帅。
抽象类继承有个 is-a关系,语义上“老王是个高富帅”就是继承。接口描述的是行为,
抽象类是一个具体类的抽象,而接口又是抽象类的抽象。就像LeiMing说的那样,接口和抽象类的存在更多是因为设计上的需要,为以后的扩展。在设计模式中有一个“开闭”原则,这就要求我们面向“抽象”编程,而不面向“实现”编程,因为你在设计一个类的时候永远不知道以后会有什么新的类加入进来,所以我们一个方法接受的参数尽量使用接口。
个人觉得应该多使用抽象类,这样在一些公共方法的修改上不用大面积修改。
首先抽象类是一个类,只是它还有些方法没有实现,在它这个抽象层次还不能实现,
例如动物是一个抽象类,他的 移动 方法还没有确定,因为有的动物是四条腿移动,有两条腿移动,
有的飞,有的爬,但是他们都能移动,这样你可以把动物定义为抽象类,将动物的移动方法定义为
抽象方法,强制继承它的子类去实现。而且你在动物这个类中移动 虽然没有实现,但是可以调用他。
总的来说面向对象只能意会不能言传,说起来很费力。
接口: 你就想一下你的电脑上的usb 接口, 接什么设备都可以是不是, 而且你的电脑不知道他
是什么设备, 这就是接口的好处,只要它遵循USB2.0 标准就能接到USB接口上使用。
多比较一下这个接口,和java的接口 你就清楚了。
对一组对象进行抽象时;有些属性和功能是一组对象中具体对象独有的。这时候的抽象称为抽象类;在此抽象中无法具体化一个对象;因为此对象不具备某些属性或功能.
人类并不是所有人都会做饭的、假如通过人类具体化一个XX人对象。它就具备了做饭功能。但是他并不具备。这就不符合逻辑。所以应该对具体XXX对象进行二次抽象。添加做饭功能.
标签:
原文地址:http://www.cnblogs.com/cmptlgg/p/4718977.html