天天看點

java中方法重載和方法重寫的差別

一、方法重載:

1.方法名相同

2.參數項不同

3.與通路修飾符和傳回值無關

4.發生在同一個類中

例子:

public class Test {

public int a=0;

public int b=0;

public void play() {

System.out.println("a的值為:"+a);

}

public void play(int a) {

System.out.println("a的值為:"+a);

}

public void play(int a, int b) {

System.out.println("a的值為:"+a+",b的值為:"+b);

}

public static void main(String[] args) {

Test test = new Test();

test.play();

test.play(3);

test.play(5, 6);

}

}

輸出:

a的值為:0

a的值為:3

a的值為:5,b的值為:6

二、方法重寫:

1.發生在父類和子類之間

2.方法名相同

3.參數清單相同

4.傳回值類型相同或者是其子類

5.通路權限不能嚴于父類

例子:

public class F {

public void play() {

System.out.println("這是父類!");

}

}

public class S extends F {

@Override

public void play() {

System.out.println("子類重寫了父類!");

}

public static void main(String[] args) {

            S s = new S();

            s.play();

}

}

輸出:

子類重寫了父類!