Java基础巩固(一)
2022/6/11 1:20:22
本文主要是介绍Java基础巩固(一),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
一. 重载、重写的区别
1. 重载
在同一作用域下,有一组具有相同函数名,不同参数表的函数,这组函数被称为重载函数
注意:
- 函数名字相同
- 参数列表不同
- 参数个数不同
- 参数个数相同,但是其中有不同的参数类型
- 返回类型不作为判断条件,即返回类型不同无法构成重载
例子:
public class Test{ public static void main(String[] args){ reload(1); reload(1, 2); reload(1, "str"); } public static void reload(int a){ System.out.println(a); } public static void reload(int a, int b){ //函数名相同,参数个数不同 System.out.println(a); System.out.println(b); } public static void reload(int a, String b){ //函数名相同,参数个数相同,但是其中一个参数类型不同 System.out.println(a); System.out.println(b); } }
以上三个reload均为重载,但下面这个例子则不是重载
public static int reload(int a){ System.out.println(a); }
尽管返回类型由void
改为int
,但参数个数、参数类型都与第一个一致,因此会报错
2. 重写
指两个方法的返回值、方法名、参数的类型和个数相同,方法体不同(子类重写父类的方法)
重写的目的:
子类不一定需要父类的功能,或者父类的功能不能满足子类
注意:
-
需要有继承关系
-
方法名必须相同
-
参数列表必须相同
-
修饰符:范围可以扩大但不能缩小(即父类的修饰符是Default,则子类的修饰符可以是Public、Protected、Default)
Public > Protected > Default > Private
-
声明为final的方法不能被重写
-
声明为Private的方法不能被重写
-
声明为static的方法不能被重写,但能被再次声明
-
如果子类和父类在同一个包内,那么子类可以重写父类的所有方法
-
如果子类和父类不在同一个包内,那么子类只能重写父类中声明为Public、Protected的方法
-
构造方法也不能重写
例子:
public class Test{ public static void main(String[] args){ A a = new A(); a.test(); //输出A B b = new B(); b.test(); //输出B } } public class A{ public void test(){ System.out.println("A"); } } public class B extends A{ @Override //这个注释可写可不写,写了方便标注方法重写 public void test(){ System.out.println("B"); } }
在上面这个例子中,A的方法如果被声明为Protected,则B重写的方法只能被Protected或Public声明,同时,如果A的方法声明为Private,则无法被B重写,Private为私有,无法重写
二. 重载和重写的联系
重写和重载是java中的两种多态,重写是父类和子类之间的一种多态的表现,而重载是一个类的多态表现。
重载能改变返回值类型。
这篇关于Java基础巩固(一)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-10-06小米11i印度快充版ROM合集:极致体验,超越期待
- 2024-10-06【ROM下载】小米11i 5G 印度版系统, 疾速跃迁,定义新速度
- 2024-10-06【ROM下载】小米 11 青春活力版,青春无极限,活力全开
- 2024-10-05小米13T Pro系统合集:性能与摄影的极致融合,值得你升级的系统ROM
- 2024-10-01基于Python+Vue开发的医院门诊预约挂号系统
- 2024-10-01基于Python+Vue开发的旅游景区管理系统
- 2024-10-01RestfulAPI入门指南:打造简单易懂的API接口
- 2024-10-01初学者指南:了解和使用Server Action
- 2024-10-01Server Component入门指南:搭建与配置详解
- 2024-10-01React 中使用 useRequest 实现数据请求