欢迎来到@一夜看尽长安花 博客,您的点赞和收藏是我持续发文的动力
对于文章中出现的任何错误请大家批评指出,一定及时修改。有任何想要讨论的问题可联系我:3329759426@qq.com 。发布文章的风格因专栏而异,均自成体系,不足之处请大家指正。
专栏:
文章概述:对 方法重写override的介绍
关键词:方法重写override
本文目录:
方法重写override
子类重写父类的方法,可以用自身行为替换父类行为。重写是实现多态的必要条件。
方法重写需要符合下面的三个要点:
= =
:方法名、形参列表相同。≤
:返回值类型和声明异常类型,子类小于等于父类。
返回类型:子类的方法返回类型可以是父类方法返回类型的子类型(协变返回类型)。
异常:子类的方法可以抛出与父类方法相同或更少的异常,但不能抛出父类方法未声明的异常。
≥
:访问权限,子类大于等于父类。
访问修饰符:子类中的方法访问修饰符不能比父类中的方法更严格。比如,如果父类的方法是 public
,那么子类的方法也必须是 public
,但不能是 protected
或 private
。
【示例】方法重写
package com.it.xiaoan;
/**
* 测试方法的重写
*/
public class TestOverride {
public static void main(String[ ] args) {
//方法的合适性和多样性
Horse h = new Horse();
Plane p = new Plane();
h.run();
h.getVehicle().run();
p.run();
}
}
class Vehicle { //交通工具类
public void run() {
System.out.println("跑....");
}
public Vehicle getVehicle(){
System.out.println("给你一个交通工具!");
return null;
}
}
class Horse extends Vehicle { // 马也是交通工具
@Override
public void run() {
System.out.println("得得得....");
}
@Override
public Horse getVehicle() {
return new Horse();
}
}
class Plane extends Vehicle {
@Override
public void run() {
System.out.println("天上飞....");
}
}
方法的重载(overload)
方法重载
是指在同一个类中,允许存在多个方法名称相同但形参列表不同的方法。
- 形参列表不同:形参类型、形参个数、形参顺序不同
作用:
- 提高代码的可读性和灵活性,使得方法名称更加简洁。
- 允许同一功能根据不同的输入参数执行不同的操作。
方法的重写(override)
方法重写
是指在子类中重新定义从父类继承来的方法,使其具有不同的实现
- :方法名、形参列表相同。
作用:
- 实现多态:通过方法重写,子类可以改变或扩展从父类继承的方法的行为,使得在运行时可以选择合适的方法实现。
- 增强灵活性和可维护性:通过重写,子类能够实现自己特定的行为,同时保持相同的接口。
总结
- 方法重载:允许在同一类中定义多个方法,它们具有相同的名称但不同的形参列表。主要用于提供同名方法的不同实现,使得代码更加简洁和易于理解。
- 方法重写:在子类中重新定义父类的方法,实现不同的行为。主要用于实现多态,使得程序在运行时能够选择合适的方法实现。