文章目录
- 前言
- 方法重载
- 方法重写
前言
提示:这里可以添加本文要记录的大概内容:
方法的重载与重写容易混,所以单独拿出来比较
提示:以下是本篇文章正文内容,下面案例可供参考
方法重载
在同一个类中,允许定义一个以上同名的方法称为方法重载
方法重载的规则:
- 方法名相同
- 方法的参数必须不同,参数类型或参数个数不同
- 方法的重载与返回值类型无关
public class 方法重载 {
public static void m1(int x) {
System.out.println("第一个m1");
}
public static void m1(double y) {
System.out.println("第二个m1");
}
public static void main(String[] args) {
m1(4.0);
}
}
方法重写
子类将从父类中继承下来的方法重新实现,叫方法重写(重新编写方法体)
方法重写的规则:
- 方法名相同
- 参数相同
- 返回值类型形同
- 访问权限不小于父类
- 抛出的异常声明不大于父类
当我们要重写一个方法时,我们可以在子类中定义一个同名的方法,使用@Override注解标注该方法,来表明我们要重写父类中的方法。
下面是一个重写方法的例子:
public class Animal {
//父类
public void move() {
System.out.println("动物在移动");
}
}
public class Dog extends Animal {
//子类
@Override
public void move() {
System.out.println("狗在跑");
}
public static void main(String[] args) {
//测试
Animal animal = new Animal();
Dog dog = new Dog();
animal.move(); // 动物在移动
dog.move(); // 狗在跑
}
}
在上面的例子中,我们定义了一个Animal
类和它的一个子类Dog
Animal
类中有一个move()
方法,它用来输出一句话“动物在移动”
在Dog
类中重写了move()
方法,并在该方法中输出了一句话“狗在跑”
当我们调用move()
方法时,如果调用的是Animal类的对象,就会输出“动物在移动”,如果调用的是Dog
类的对象,就会输出“狗在跑”。
这就是方法重写的作用,它让我们在子类中可以重新定义父类中的方法,并且可以根据需要修改其行为。