方法覆盖的定义
方法覆盖是指子类定义了一个与父类同名、同参数、同返回类型的方法,并且该子类的对象调用该方法时,会覆盖父类中的同名方法,从而执行子类自己的方法代码逻辑。
方法覆盖的规则
方法覆盖有以下规则:
- 访问修饰符不能比父类中的方法更严格
- 返回类型必须与父类中的方法一致或为其子类
- 参数列表必须与父类中的方法一致
- 子类中定义的方法不能抛出比父类方法更宽泛的异常
方法覆盖的实例
以下是一个方法覆盖的示例:
//父类 public class Parent { public void print() { System.out.println("Parent.print"); } } //子类 public class Child extends Parent { public void print() { System.out.println("Child.print"); } } public class Main { public static void main(String[] args) { Parent p = new Parent(); p.print(); //输出 "Parent.print" Child c = new Child(); c.print(); //输出 "Child.print" Parent pc = new Child(); pc.print(); //输出 "Child.print" } }
在上述代码中,子类 Child 覆盖了父类 Parent 中的 print() 方法,并将其实现为输出 "Child.print"。当使用父类的实例 p 调用 print() 方法时,输出 "Parent.print";当使用子类的实例 c 调用 print() 方法时,输出 "Child.print";当使用父类的引用 pc 引用子类的实例并调用 print() 方法时,输出 "Child.print"。
本文来自投稿,不代表亲测学习网立场,如若转载,请注明出处:https://www.qince.net/java687.html
郑重声明:
本站所有内容均由互联网收集整理、网友上传,并且以计算机技术研究交流为目的,仅供大家参考、学习,不存在任何商业目的与商业用途。 若您需要商业运营或用于其他商业活动,请您购买正版授权并合法使用。
我们不承担任何技术及版权问题,且不对任何资源负法律责任。
如遇到资源无法下载,请点击这里失效报错。失效报错提交后记得查看你的留言信息,24小时之内反馈信息。
如有侵犯您的版权,请给我们私信,我们会尽快处理,并诚恳的向你道歉!