【软件工程师从0到1】- 多态 (知识汇总)

 前言

介绍:大家好啊,我是hitzaki辰。

社区:(完全免费、欢迎加入)日常打卡、学习交流、资源共享的知识星球。

自媒体:我会在b站/抖音更新视频讲解 或 一些纯技术外的分享,账号同名:hitzaki辰。

正文开始,抓紧上车!

8f4dc768ffa445d78de7eb9469c55c3d.png


一 - 重载

1)同一个类中定义的方法名称相同, 参数类型或参数长度不同或顺序不同, 可以完成方法的重载 ;

2)方法的重载与返回值、权限修饰符无关;

3)方法的重载 ,可以让我们在不同的需求下, 通过传递不同的参数调用方法来完成具体的功能。

4)返回值类型可以相同也可以不同,但是不能只有返回值不同

构造方法的重载

1)一个类, 可以存在多个构造方法 ;

2)参数列表的长度或类型不同即可完成构造方法的重载 ;

3)构造方法的重载 ,可以让我们在不同的创建对象的需求下, 调用不同的方法来完成对象的初始化 ;

 

二 - 重写

重写父类的方法

1)参数列表必须完全与被重写的方法相同;

2)返回类型必须是父类返回类型或其子类型。

3)访问权限不能比父类被重写的方法的访问权限更低。例如父类方法为public,子类就不能为protected; 由此也可看出,可以提高可见性。

4)父类的成员方法只能被它的子类继承;

5)声明为static和private的方法不能被重写,但是能够被再次声明;

@Override

可以使用@Override注解来标注重写的方法

1)防止重写的过程中出错,比如使用这个注解标注的方法,编译时编译器会检查父类是否存在这个方法,没有则报错

2)可以增加可读性,查看你代码的人一目了然这个是重写父类方法。

 

三 - 多态

多态的体现

多态就是对象的多种表现形式,(多种体现形态)

多态的体现

1)对象的多态性,从概念上非常好理解,在类中有子类和父类之分,子类就是父类的一种形态 ,对象多态性就从此而来。

2)重载: 一个类中方法的多态性体现 。

3)重写: 子父类中方法的多态性体现。

多态的使用

对象的类型转换

类似于基本数据类型的转换:

1)向上转型:将子类实例变为父类实例   - 格式:父类 父类对象 = 子类实例 ;

2)向下转型:将父类实例变为子类实例   - 格式:子类 子类对象 = (子类)父类实例 ;

 

四 - 动态绑定和静态绑定

静态类型、动态类型

    比如Father的子类 S1、S2, 则可以定义Father[] 来在同一个数组引用不同的子类。

    其中Father称为Father的静态类型 , S1、S2称为Father的动态类型。

动态绑定:

1)对于实例方法,调用哪个方法与实例的类型有关,而非引用的类型。

2)动态绑定和多态是一种重要的计算机思维,使程序无需关注对象的实际类型,进行统一处理,又能实现各个对象的特有行为。

静态绑定:

1)若Father和S1、S2有两个相同的public的相同的静态方法,则不管使用Father数组的哪个元素调用这个静态方法,都是调用的Father的静态方法。

因为这个调用只与静态类型有关, 这称为静态绑定。

2)动态绑定是运行时决定的,而静态绑定是程序编译阶段决定的。

3)实例变量、静态变量、静态方法、private方法都是静态绑定的。

动态静态绑定

1)对于属性: 编译和运行都看左边                             2)对于方法:编译看左边、运行看右边

 

Java语言是静态多分配、动态单分配的。

若是重载方法间选择,则使用静态类型。 若是父类子类重写方法的选择,则使用动态类型。

 

结尾

感谢你看到这里,如果感觉内容不错的话请点赞支持一下!

如果小伙伴对我的讲解有疑问,欢迎评论区讨论。

 

  • 7
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hitzaki辰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值