Java重载和重写
Java重载和重写
1.方法重载
同一个类中,有多个方法名称相同,但是参数(个数或类型)或者返回类型不同,这种操作叫做方法重载。
``
class MethodDad{
public void method1(){
System.out.println("方法1");
}
//方法重载
private int static method1(int i){
return i;
}
public void method1(String str){
System.out.println(str);
}
}
我们能够发现:重载方法名称必须相同,参数必须不同;返回值类型可以不同,修饰符可以不同。
2.方法重写
重写是子类对父类的方法进行重写,子类重写为自己需要的。重写时方法参数必须与父类完全一样
``
public class MethodTest extends MethodDad{
@Override
public void method1() {
System.out.println("子类方法1");
}
public static void method2(){
System.out.println("子类方法2");
}
public static void main(String[] args) {
MethodTest m1 = new MethodTest();
MethodDad m2 = new MethodTest();
m1.method1();
m2.method1();
m1.method2();
m2.method2();
}
}
class MethodDad{
public void method1(){
System.out.println("父类方法1");
}
public static void method2(){
System.out.println("父类方法2");;
}
}
结果显示:
子类方法1
子类方法2
子类方法1
父类方法2
结果分析:方法重写是对于父类非静态方法,静态方法不能进行重写。
private、static和final修饰的方法不能重写
重写访问权限,只能更高不能更低,default<protected<public
3.二者区别
重载:
- 方法名必须相同
- 参数列表必须不同,返回类型可以不同
- 必须是同一个类中
重写:
- 方法名必须相同
- 参数列表和返回类型必须相同
- 子类重写父类
- 父类非静态方法
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)