面向对象——多态的理解
2011-07-18 01:33
148 查看
面向对象的三大特征:封装,继承,多态;其中多态是面向对象的核心,因为有了多态才,有了解耦合,才有了很强的扩展性;
多态性——概念:一个父类的引用变量可以指向不同的子类对象,并且在运行时根据父类引用变量所指向对象的实际类型执行相应的子类方法
多态的前提是有继承,因为多态的三大条件是:@1有子类继承父类,@2子类覆盖了父类的方法,
下面这个是网上找的资料,还是讲得挺容易懂的:
封装的概念好比一辆汽车,你学开车的时候只需学会诸如踩油门、刹车,转方向盘即可,无需去了解它的发动机是如何发动。
继承,先说说我对类的理解,类起到的作用有:分类(你所用某个类创建的对象实际上该类的个案)和模板的作用,那么继承则起到了对类再次分类的作用,比如,有个类“动物”,“哺乳动物”继承“动物”,再往下“马”又继承了“哺乳动物”这个类。在这里,我们从下往上讲,首先,我们把某种东西划分出来,叫做“马”(当然还有“牛”,“鱼”等等),接着,我们发现,“马”,“羊”等还有很多共同的特点,于是,我们再次划分出了“哺乳动物”这个类,再次分类,我们则有了“动物”。但在实际开发中,我们一般是从上往下定义的,即先有了“动物”,再有“哺乳动物”,最后有“马”。
多态,正如上面朋友所说一重写,二重载。用汉字来打个比方,比如“开”这个字,在不同的时候各有的意思,比如“开门”,“开窗”,甚至有“开车”,“开饭”等,具有相同名称但操作不同。具体的实现我就不累述了。
说说接口吧,在JAVA不支持多继承的,实际上接口起到了类似多继承的作用,一个类只能继承另一个类(或抽象类)但可以实现多个接口。打个比方,“张三”,他是一个“人”,因此他继承了“人”;与此同时,他是一个“司机”,他的平时行为还有“开车”,很显然,这并不能从“人”这个类里继承下来。怎么办?JAVA里只支持单继承,这个时候,接口就起到了作用,它定义了“司机”这个接口,“张三”实现了它,因此,他会开车了。
多态性——概念:一个父类的引用变量可以指向不同的子类对象,并且在运行时根据父类引用变量所指向对象的实际类型执行相应的子类方法
多态的前提是有继承,因为多态的三大条件是:@1有子类继承父类,@2子类覆盖了父类的方法,
下面这个是网上找的资料,还是讲得挺容易懂的:
封装的概念好比一辆汽车,你学开车的时候只需学会诸如踩油门、刹车,转方向盘即可,无需去了解它的发动机是如何发动。
继承,先说说我对类的理解,类起到的作用有:分类(你所用某个类创建的对象实际上该类的个案)和模板的作用,那么继承则起到了对类再次分类的作用,比如,有个类“动物”,“哺乳动物”继承“动物”,再往下“马”又继承了“哺乳动物”这个类。在这里,我们从下往上讲,首先,我们把某种东西划分出来,叫做“马”(当然还有“牛”,“鱼”等等),接着,我们发现,“马”,“羊”等还有很多共同的特点,于是,我们再次划分出了“哺乳动物”这个类,再次分类,我们则有了“动物”。但在实际开发中,我们一般是从上往下定义的,即先有了“动物”,再有“哺乳动物”,最后有“马”。
多态,正如上面朋友所说一重写,二重载。用汉字来打个比方,比如“开”这个字,在不同的时候各有的意思,比如“开门”,“开窗”,甚至有“开车”,“开饭”等,具有相同名称但操作不同。具体的实现我就不累述了。
说说接口吧,在JAVA不支持多继承的,实际上接口起到了类似多继承的作用,一个类只能继承另一个类(或抽象类)但可以实现多个接口。打个比方,“张三”,他是一个“人”,因此他继承了“人”;与此同时,他是一个“司机”,他的平时行为还有“开车”,很显然,这并不能从“人”这个类里继承下来。怎么办?JAVA里只支持单继承,这个时候,接口就起到了作用,它定义了“司机”这个接口,“张三”实现了它,因此,他会开车了。
相关文章推荐
- 彻底理解面向对象的多态
- java面向对象的三大特点理解—— 继承、封装、多态
- 再次理解面向对象的第三大特征------多态
- PHP面向对象三大特点学习(充分理解抽象、封装、继承、多态)
- 【python学习笔记】Python面向对象的理解(封装,继承,多态)
- 深入理解Java面向对象三大特性 封装 继承 多态
- 关于面向对象“多态”的理解
- java基础(三)探探对面向对象三大特征之一 ——多态 的理解
- 如何理解Java面向对象的多态
- PHP面向对象三大特点学习(充分理解抽象、封装、继承、多态)
- java中对面向对象的三大特征:封装、继承、多态的理解
- [李景山php] 深入理解PHP内核[读书笔记]--第五章:类和面向对象 --类的继承,多态及抽象类
- PHP面向对象三大特点学习(充分理解抽象、封装、继承、多态)
- 面向对象的三大特性及多态的理解和原理剖析
- 黑马程序员——Java基础---深入理解面向对象(封装继承和多态)
- 深入理解Java面向对象三大特性 封装 继承 多态
- [置顶] JAVA-面向对象-封装、继承和多态
- Java面向对象三大特征怎么样轻松理解`?
- 黑马程序员----------面向对象之封装继承多态
- OC面向对象之多态