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.二者区别

重载:

  1. 方法名必须相同
  2. 参数列表必须不同,返回类型可以不同
  3. 必须是同一个类中

重写:

  1. 方法名必须相同
  2. 参数列表和返回类型必须相同
  3. 子类重写父类
  4. 父类非静态方法
posted @   疯狂的豆包  阅读(152)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
点击右上角即可分享
微信分享提示