淘先锋技术网

首页 1 2 3 4 5 6 7

在Java中,方法重写(Method Override)和方法重载(Method Overload)是面向对象编程的重要概念。它们可以让我们写出更加灵活和复杂的代码,提高程序的可读性和可维护性。

方法重写

方法重写是指子类重写父类的方法,使得子类可以根据自己的需要,改写父类的行为。
方法重写的规则如下:
1、子类的方法名、参数列表和返回类型必须与父类的方法名、参数列表和返回类型相同。
2、子类的访问修饰符不能比父类的访问修饰符更为严格。
3、子类的异常类型必须是父类异常类型的子集。
4、父类的方法必须是非final的。
以下是一个简单的方法重写的例子:
class Animal {
public void move() {
System.out.println("Animal can move");
}
}
class Dog extends Animal {
@Override
public void move() {
super.move();
System.out.println("Dog can move");
}
}
public class TestDog {
public static void main(String args[]) {
Animal animal = new Animal();
Dog dog = new Dog();
animal.move();
dog.move();
}
}

上面的例子中,Dog类继承了Animal类,并重写了move()方法。在重写move()方法时,可以使用super关键字调用父类的方法。执行main方法将输出以下结果:

Animal can move
Animal can move
Dog can move

方法重载

方法重载是指在同一个类中,有多个方法名相同但参数列表不同的方法。方法重载的规则如下:
1、同一类中,方法名相同、参数列表不同。
2、返回类型可以相同也可以不同。
3、方法调用时,Java编译器将根据参数列表的不同,确定调用哪个方法。
以下是一个简单的方法重载的例子:
public class Example {
public int add(int a, int b) {
return a + b;
}
public double add(double a, double b) {
return a + b;
}
}
public class TestExample {
public static void main(String[] args) {
Example example = new Example();
System.out.println(example.add(1, 2));
System.out.println(example.add(1.1, 2.2));
}
}

上面的例子中,Example类中有两个名字相同,但参数列表不同的add方法。执行main方法将输出以下结果:

3
3.3

总之,在Java中,方法重写和方法重载是实现多态的两种方式。使用它们可以大大增加程序的灵活性和可读性。