Java 方法重写(也称为方法覆盖)是面向对象编程中的一个核心概念,它允许子类使用与父类相同的方法签名(方法名、参数列表和返回类型)来提供自己的实现,以下是关于 Java 方法重写的详细说明:
方法重写的基本规则
规则 | 说明 |
---|---|
方法名相同 | 子类重写的方法必须与父类中的方法同名。 |
参数列表相同 | 子类重写的方法必须与父类中的方法具有相同的参数列表。 |
返回类型相同 | 子类重写的方法必须与父类中的方法具有相同的返回类型,如果父类方法的返回类型是基本数据类型,则子类重写的方法也必须是相同的基本数据类型,如果父类方法的返回类型是类类型,则子类重写的方法可以返回该类或其子类的实例。 |
访问权限相同或更宽松 | 子类重写的方法的访问权限必须与父类中的方法相同或更宽松,如果父类方法是 public,则子类重写的方法可以是 public、protected 或默认(无修饰符)。 |
抛出异常相同或更少 | 子类重写的方法可以抛出与父类方法相同的异常,或者抛出更少的异常。 |
抛出异常的子类 | 如果父类方法抛出异常,子类重写的方法可以抛出相同异常的子类。 |
父类为 final | 如果父类中的方法被声明为 final,则不能被重写。 |
示例代码
以下是一个简单的示例,演示了如何在一个类中重写一个方法:
class Parent { public void display() { System.out.println("This is Parent class method."); } } class Child extends Parent { @Override public void display() { System.out.println("This is Child class method."); } } public class Main { public static void main(String[] args) { Parent obj = new Child(); obj.display(); // 输出:This is Child class method. } }
在上面的示例中,Child
类重写了 Parent
类中的 display
方法,当通过 Parent
类型的引用调用 display
方法时,会调用子类 Child
中的重写方法。
FAQs
问题 1:什么是方法重写?
解答: 方法重写是面向对象编程中的一个概念,它允许子类使用与父类相同的方法签名来提供自己的实现,子类重写的方法必须与父类中的方法同名、参数列表相同、返回类型相同,并且访问权限必须相同或更宽松。
问题 2:为什么需要方法重写?
解答: 方法重写是面向对象编程中的一个强大工具,它允许子类根据特定的需求覆盖父类的方法实现,这有助于提高代码的可重用性和可维护性,同时使代码更加灵活和模块化,通过重写方法,子类可以提供与父类不同但更符合特定场景的实现。
原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/181247.html