面向对象之多态、转型、Object类、抽象类

一、多态
1、是什么
一个事物的多种表现形式
2、调用
父类引用调用
3、最终表现形式
父类引用指向子类对象
4、多态的前提
继承
子类继承了父类内容才能实现
5、注意
如果没有方法的重写,多态调用就没有意义了
为什么
有了重写,就有了一个功能的多种运行方式
编译时调用的父类,运行时调用的子类的对象

二、转型
1、联系
基本数据类型
2、是什么
引用数据类型
向上转型
子类–>父类
向下转型
父类–>子类
子类类型 变量 = (子类类型)数据引用
3、java.lang.ClassCastException
类型转换异常
在向下转型的时候,如果转化成了其他的子类类型(如A->B),就会产生异常
4、instanceof 修饰符
是什么
用来判断引用a中所存的对象是否和类型b兼容 如果兼容,则结果为true,不兼容结果为false
判断前面的引用是否指向后面类型的对象或者后面类型的子类对象,如果是返回true,不是返回fales
什么时候用
判断两个类是否是继承关系

三、Object类
老祖宗类
是java中所有类的父类
equals
比较两个对象数据是否相等
和==比较
==比较两个数据是否相等
基本
数据值
引用
对象地址值
为什么要在子类中重写equals方法
使用Object类的equals方法,默认比较对象地址,业务需求想要比较根据对象的属性值比较是否相等,可以在子类中根据需要重写equals,实现比较对象所有属性而非地址值
hashCode
整数的对象表现形式,返回int类型
toString
返回对象的字符串类型
为什么要在子类中重写toString方法
因为输出对应的引用时候不想打印对象的地址值,想要输出对象的所有属性值,对于从Object继承的toString需要,对toString的实现不满意,需要在子类中重写toString

四、抽象类 abstract抽象的
1、抽象类
被abstract修饰的类
2、抽象方法
被abstract修饰的方法
没有方法体,必须存在于抽象类中
3、注意
抽象类不能实例化
抽象方法必须存在与抽象类中
抽象类中可以定义可以不定义抽象方法,可以定义任意内容
抽象类的使用
具体子类对象调用成员
重写所有的抽象方法 + 按需新增
抽象子类
按需重写 + 按需新增
抽象方法必须被重写的,但是只需要重写一次,按需重写多次
abstract不能与private,final,static,native一起使用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值