DAY08

本文深入探讨了面向对象编程中的多态性,强调了继承和重写在实现多态中的作用,以及如何通过父类引用调用子类方法。同时,介绍了异常处理的机制,包括异常层次结构、编译异常与运行时异常的区分,以及处理异常的两种方式——捕获处理和向上抛出。此外,还讲解了抽象类和抽象方法的概念,指出抽象类不能实例化,子类必须实现所有抽象方法才能成为普通类。
摘要由CSDN通过智能技术生成

面向对象之多态
1. 前提:继承+重写
2. 口诀1:父类引用指向子类对象
解释:父类类型的引用类型变量保存的是子类类型的对象的地址值

2.口诀2:编译看左边,运行看右边
解释:编译时要看父类是否定义了这个资源,运行时使用的是子类的功能

3.资源使用情况
成员变量使用的是父类的
成员方法使用的是父类的方法定义,子类的方法体
如果多态对象调用的是子类没有重写过的方法,方法定义与方法体使用的都是父类的,所以这个不符合多态的前提,直接使用纯纯的父类对象调用即可
静态资源属于类资源,随着类的加载而加载,只会加载一次,优先于对象进行加载,可以通过类名直接调用,被全局所有对象共享,所以静态不存在重写的现象,在哪个类定义,就属于哪个类的资源
我们现在学习的多态,把自己看作是父类类型,参考“花木兰替父从军”
异常
1. 异常的继承结构
异常层次结构中的根是Throwable
Error:目前我们编码解决不了的问题
Exception:异常
编译异常:未运行代码就报错了,强制要求处理
运行时异常:运行代码才报错,可以通过编译,不强制要求处理

2.异常的解决方案
捕获处理try-catch–自己解决
向上抛出throws–交给别人解决
不能直接把异常抛给main(),因为调用main()是JVM,没人解决了

抽象abstract
1.抽象类
抽象类是被abstract修饰的类
抽象类对其中的方法不做限制:全普/全抽/半普半抽
抽象类不可以实例化–创建对象
如果一个子类继承了一个抽象父类,有两种解决方案:
继续抽象 / 实现抽象父类的所有抽象方法,变成普通子类
2.抽象方法
抽象方法是被abstract修饰的方法
抽象方法没有方法体{},以分号结束
 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值