跳到主要内容

方法重写

子类中的一个成员方法与父类中的成员方法有相同的签名(方法名加上参数数量和参数类型)和返回值类型的实例方法重写了父类的方法

如何使用方法重写

子类重写方法的能力使类可以从行为“足够近”的父类继承,然后根据需要修改行为。重写方法与被重写的方法具有相同的名称,数量和参数类型,并且返回类型相同。重写方法还可以返回重写方法返回的类型的子类型。 此子类型称为协变返回类型。

重写方法时,您可能需要使用@Override注解,该注释指示编译器您打算重写父类中的方法。 如果由于某种原因,编译器检测到该方法在父类中不存在,则它将生成错误。

##container##
基本类型byteshortintlongfloatdouble
类 => 都是Number的子类ByteShortIntegerLongFloatDouble

重写方法时访问修饰符的级别不能降低。

示例:

package ord.HX.text;

public class Geometry {
/**
* 计算面积
* @return 面积
*/
protected Number area() {
return 0;
}
}

class Round extends Geometry {
private int radius;

public Round(int radius) {
this.radius = radius;
}

@Override // 重写, 写这个会让编译器检查是否重写成功: 如果父类没有这个函数就会报错
/* 可以重写访问修饰符, 级别: private(不能重写私有因为不继承) < 默认(受包保护) < protected < public */ public Double area() {
return this.radius * this.radius * Math.PI;
}
}
java
请作者喝奶茶:
Alipay IconQR Code
Alipay IconQR Code
本文遵循 CC CC 4.0 BY-SA 版权协议, 转载请标明出处
Loading Comments...