天天看点

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();

}

}

输出:

子类重写了父类!