方法重写和方法重载有什么区别?
admin
28
2024-07-04
方法重写和方法重载是面向对象编程中的两个重要概念。虽然两者都涉及到方法的使用,但它们在实现方式和作用上有着不同的区别。一、方法重写1. 方法重写的定义方法重写,也称为覆盖(Override),是指在子类中重新定义父类中已有的方法,以便在子类中实现更具体、更适合子类对象的
方法重写和方法重载是面向对象编程中的两个重要概念。虽然两者都涉及到方法的使用,但它们在实现方式和作用上有着不同的区别。
一、方法重写
1. 方法重写的定义
方法重写,也称为覆盖(Override),是指在子类中重新定义父类中已有的方法,以便在子类中实现更具体、更适合子类对象的行为。
2. 方法重写的要求
方法重写必须满足以下要求:
- 子类方法的名称、参数列表和返回类型必须与父类方法一致;
- 子类方法的访问修饰符不能比父类方法的更严格;
- 子类方法不能比父类方法抛出更多的异常。
3. 方法重写的作用
方法重写的主要作用是实现多态性,即将多个不同的子类对象当作父类对象来使用,根据具体的子类对象执行对应的方法。这样可以提高程序的灵活性和可扩展性,使代码更加简洁易读。
4. 方法重写的使用示例
以下是一个简单的示例,演示了方法重写的使用:
public class Animal {
public void sound() {
System.out.println("Animal makes sound");
}
}
public class Dog extends Animal {
@Override
public void sound() {
System.out.println("Dog barks");
}
}
public class Cat extends Animal {
@Override
public void sound() {
System.out.println("Cat meows");
}
}
public class Main {
public static void main(String[] args) {
Animal animal1 = new Dog();
animal1.sound(); // Output: Dog barks
Animal animal2 = new Cat();
animal2.sound(); // Output: Cat meows
}
}