1. 继承:

从多个子类中抽象出实例变量以及方法,形成更抽象的父类,避免在子类中的代码重复,维护起来更加方便。检查是否可以使用继承技术的方法是:IS A

对于类A继承自类B,类C继承自类A,那么类C和类A之间也应该满足 IS A 准则。

IS A是单向关系。

“是一个”和“有一个”:

小汽车是一个汽车,那么小汽车这个类可以抽象出汽车类,或者说小汽车继承自汽车类。

浴缸是一个浴室吗?不对!浴缸和浴室的关系应该是:浴室中有一个浴缸!have a的关系,那么浴缸应该是浴室类的一个实例变量。

 

2. 多态:

oo中,声明一个父类的引用:如 Animal a = new Animal(); 多态的实际效果就是。a = new Dog() (Dog Extend Animal)。即 一个父类的引用可以指向一个子类对象。

实际的意义就是:public Animal returnAnimal(Animal a){}  在这个方法中,可以返回一个Animal对象,可以传入一个animal对象,也可以传入和返回任何一个Extend Animal的子类对象。

 

3. 重写(override):

重写就是要求方法签名完全一样,这样才会覆盖掉父类中的同名方法。方法签名:修饰符 返回类型 方法名(参数列表)

 

4. 重载(overload):

重载要求的是参数列表一定要不一样。即子类中可以增加一个和父类中完全一样的方法,但是方法签名不一样,当子类对象调用方法时,根据参数列表来判断应该调用父类中的方法还是子类中的方法。

 

5. 接口:

继承只是个开始,要使用多态,我们还需要接口。Interface 是一种100%纯抽象的类。

 

6. 抽象类:

Animal的对象会是一个什么动物?所有有些类根本就不应该被初始化!抽象类不能初始化!但是可以用抽象类型作为一个引用类型。这也是为何当初要有抽象类型的目的。修饰符:abstract。抽象类是除了被继承之外没有其他用途,没有值,没有目的的类。它可以带有抽象和非抽象的方法。

抽象方法:抽象的方法代表此方法一定要被覆盖过(重写)。抽象的方法没有实体(代码块)。抽象方法只存在抽象类中。如果含有抽象方法,那么该类也是抽象类。

最新文章

  1. javascript学习之带滚动条的图片
  2. 关于sql中join
  3. 项目导入myeclipse10后jsp报错问题
  4. [MobilewebApp]图片的适配与清晰度
  5. java 面向对象编程-- 第十三章 反射、类加载与垃圾回收
  6. Cocos2d-x项目移植到WP8小记
  7. python(4)–yield实现异步
  8. 挑战Python-20160826
  9. jquery mobile (一)
  10. 简单竖向Tab选项卡
  11. wxWidgets刚開始学习的人导引(3)——wxWidgets应用程序初体验
  12. [ios2] CABasicAnimation【转】
  13. jpush 延迟推送的栗子
  14. 记一次利用AutoMapper优化项目中数据层到业务层的数据传递过程。
  15. freemarker写select组件报错总结(五)
  16. dump文件解析之探索.Net的内存
  17. iOS 二维码 学习
  18. Python_面向对象_单例模式
  19. 五、UI开发之核心基础——约束(深入)
  20. Python学习笔记(1)__name__变量

热门文章

  1. JZOJ 100029. 【NOIP2017提高A组模拟7.8】陪审团
  2. 排序算法合集(Java)
  3. 水题:HDU1303-Doubles
  4. Hive UDF开发指南
  5. 【MySQL】资源列表
  6. 微信SSL证书更换的检查与安装方法
  7. 59、佳博wifi打印机怎么配置
  8. 【Luogu P1661】扩散
  9. rn-fetch-blob+redux 取消请求
  10. hnust CZJ-Superman