多态、使用父类类型作为参数、向上转型和向下转型、使用父类类型作为返回类型、简单工厂模式、抽象类的多态应用

《多态》

一、多态的基础概念
1、里氏替换原则:任何基类(父类)可以出现的地方,子类一定可以出现(子类对象可以替换父类对象)
2、即父类类型的变量可以引用子类对象 如:Person st = new Student();
3、extends关键字不翻译为继承,是指的正确翻译是扩展
(1)子类可以扩展出父类没有的方法
(2)子类可以覆盖重写父类现有的方法
4、子类对象可以替换父类对象的原因是子类的范围和能力要大于或等于父类
(1)子类继承了父类,拥有了父类的属性和方法,所以子类至少等于父类,父类有的子类也有
(2)子类可以扩展和重写父类的方法,所以父类没有的,子类也可以有
5、子类方法中注意区分重写和重载
6、对象在调用方法时,需要受到对象本身的类型限制,父类的引用不能调用子类的方法(除非子类重写父类的方法)
7、以交通工具为例子:vehicle、benz、mbw(run方法)

二、使用父类类型作为参数
1、通过Trainner(饲养员)、Dog、penguin的例子,用重载的方式实现feed方法
2、如果新增一种动物,则以上程序不符合OCP原则
(1)OCP:open closed principle(开放关闭原则)
(2)指对扩展开放,对修改关闭
3、通过多态来修改上面的例子
4、多态:同一类对象的相同行为有着不同的表现形式(世界时多彩缤纷的)(比如同样是动物,但吃东西的方法不一样)
5、多态能够提高代码的可扩展性和可维护性,减少代码量
6、实现多态的的手法:
(1)子类继承父类(前提条件)
(2)子类重写父类方法(实现手段)
(3)父类类型可以引用不同的子类对象实现动态替换(里氏替换原则)
7、设计原则:依赖于抽象,不依赖于具体
(1)抽象的东西更加可靠,适应范围更广
(2)像生活中的语言艺术(即没有把话说死)
(3)OOP(面向对象)中的多态也一样,没有把类型写死,可以用其他子类型来替换,程序就更灵活了

三、向上转型和向下转型
1.基本数据类型有转换,引用类型的数据也有类型转换
2.向上转型:
(1)将一个父类的引用指向一个子

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值