你作为一个Java领域的专家,请完成以下任务:重载和重写
时间: 2023-07-14 22:12:20 浏览: 100
重载和重写是Java中两个与方法有关的概念。
重载(Overloading)指的是在同一个类中定义多个方法,它们具有相同的名称,但是参数列表不同(参数类型、个数、顺序不同),以便使用者可以根据实际需要选择合适的方法进行调用。重载实现了多态的一种形式。
例如:
```
public class Overload {
public void add(int a, int b) {
System.out.println("int相加:" + (a + b));
}
public void add(double a, double b) {
System.out.println("double相加:" + (a + b));
}
public void add(String a, String b) {
System.out.println("字符串相加:" + a + b);
}
}
```
在这个例子中,我们定义了三个名为add的方法,它们的参数列表分别为(int,int)、(double,double)和(String,String),实现了方法重载。
重写(Override)指的是子类重新定义父类中已经有的方法,方法名、参数列表都相同,但是实现内容不同。通过重写父类方法,子类可以根据自己的需求来实现具体的功能。
例如:
```
class Animal {
public void move() {
System.out.println("动物在移动");
}
}
class Dog extends Animal {
@Override
public void move() {
System.out.println("狗在跑");
}
}
public class Test {
public static void main(String[] args) {
Animal animal = new Animal();
animal.move();
Dog dog = new Dog();
dog.move();
}
}
```
在这个例子中,我们定义了一个Animal类和一个Dog类,Dog类继承自Animal类,并重写了其中的move()方法。在main方法中,我们分别创建了一个Animal类的对象和一个Dog类的对象,通过调用它们的move()方法,可以看到输出结果不同。这就是重写的实现。
需要注意的是,重写方法不能降低访问权限,即不能由protected改为private,也不能由public改为protected等。同时,重写方法的返回值类型、方法名和参数列表必须与被重写方法完全一致或者是其子类类型。
阅读全文