三分钟带你学会面向对象的三大特性之一 多态

1.Object类

是java中所有类的父类

在java中的所有类都会直接或者间接的继承自Object类

toString()方法

​ toString() 把对象数据已字符串的形式表示

​ 直接打印一个对象的引用的时候,默认打印的调用toString() 方法的返回值

​ 需求:在打印一个javabean类型对象的引用的时候,其实是想要了解这个对象的基本

信息–>成员变量的值

​ 解决:在子类中重写toString方法,因为打印对象引用时候默认会调用toString(),toString功能需要,实现不满意就重写

equals()方法

== 可以比较所有数据类型的数据,基本数据类型->数据值 引用数据类型->比较对象地址
equals 只能比较引用数据类型的数据
比较两个数据是否相等 对象1.equals(对象2)
Object类中equals方法的实现->默认比较对象的地址,可以通过重写equals方法实现比较对象的内容
需求: 比较两个引用数据类型对象的时候,想要比较两个对象的所有成员变量的值是否都相等,而非比较对象地址
解决: 子类中重写equals方法,实现比较对象内容非地址

2.多态

多态–>面向对象三大特性
多种形态->多种表现形式

多态的最终体现:
父类的引用指向子类的对象

多态的前提:
继承关系
实现关系

多态的使用:
当多态调用时候,会调用子类中的重写方法

多态调用成员特点:
成员变量 :
编译运行看父类|左边|类型

​ 成员方法 :
​ 编译看父类,运行找子类
​ 编译看左边,运行找右边
​ 编译看类型,运行找对象

父类引用指向子类对象

多态: 行为的多态,行为的不同实现方式
行为->方法->方法的重写

多态需要配合方法的重写才有意义

多态引用对子类内容不可见

多态的好处:
解耦 :
灵活性
便于后期维护

基本数据类型 :
自动类型提升 : 小–>大
int i = ‘a’;
强制类型转换 : 大–>小
byte b = (byte)i;
转型:
引用数据类型:
父类->大
子类->小
向上转型: 小->大
Person p = new Student();
向下转型: 大->小
Student s = (Student)p;

通过多态的引用调用子类中新增内容的时候,需要向下转型

3.abstract抽象类

被abstract修饰的的类就是抽象类

被abstract修饰的的方法就是抽象方法

1.抽象类中可以存在具体方法,可以存在抽象方法

可以存在成员变量.构造器

2.抽象类不能实例化,(不能创建对象)

3.一个抽象方法必须被重写,重写可以为抽象方法定义方法体

4.抽象类的使用:通过具体子类的对象使用

具体的子类:重写了父类的抽象方法

抽象的子类:没有重写父类的抽象方法

5.一个抽象方法一旦被重写,后续是否需要重写根据需求而定.

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值