java方法的重载与重写

1.重载(overloading)

即方法的重新加载。对于一个类,这个类里有两个或多个重名的方法,但是这些方法的参数的个数、类型不同,就构成了方法的重载。

 如:

public class A {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        int x=0;
        int y=0;
        double z=0.0;
        A.methodA(x);
        A.methodA(x,y);
        A.methodA(z);
        
    }
    public static void methodA(int x){
        x=1;
        System.out.println(x);
    }
    public static void methodA(int x,int y){
        x=1;
        y=2;
        System.out.println(x+y);
    }
    public static void methodA(double x){
        x=3.0;
        System.out.println(x);
    }

结果如下:


重载的特点:同一个类中,方法名相同,但参数不同(参数的类型、参数的个数)

java面向对象基础中构造函数---空参构造和全参构造,就是方法的重载,是面向对象中多态的一种表现。

2.重写(override),也可以叫做覆写,即覆盖了一个方法并对其重写,这个方法是父类中的方法,它继承了父类的方法并对父类方法进行重写。

如:

public class A {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        int x=0;
        B.methodA(x);
    }
    
    public static void methodA(int x){
        x=1;
        System.out.println(x);
    }
    public static class B extends A{
    }
}

结果如下:

class B继承了来自classA的方法methodA()

public class A {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        int x=0;
        A.methodA(x);
        B.methodA(x);
    }
    
    public static void methodA(int x){
        x=1;
        System.out.println(x);
    }
    public static class B extends A{
        public static void methodA(int x){
            x=2;
            System.out.println(x);
        }
    }
}

结果如下:

子类(B类)class B中的方法methodA()覆盖了继承自父类(A类)的方法methodA()

重写的特点:子类方法继承自父类,具有与父类不同的方法

原文地址:https://www.cnblogs.com/1960366876tZ/p/8685965.html