理解oo:继承、多态、重写、重载、接口、抽象类

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。抽象类是除了被继承之外没有其他用途,没有值,没有目的的类。它可以带有抽象和非抽象的方法。

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值