前言
介绍:大家好啊,我是hitzaki辰。
社区:(完全免费、欢迎加入)日常打卡、学习交流、资源共享的知识星球。
自媒体:我会在b站/抖音更新视频讲解 或 一些纯技术外的分享,账号同名:hitzaki辰。
正文开始,抓紧上车!
一 - 重载
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语言是静态多分配、动态单分配的。
若是重载方法间选择,则使用静态类型。 若是父类子类重写方法的选择,则使用动态类型。
结尾
感谢你看到这里,如果感觉内容不错的话请点赞支持一下!
如果小伙伴对我的讲解有疑问,欢迎评论区讨论。