目录
一、重写(覆写/重写/覆盖)
重写的规则
关于重写的注意事项
二、重载
重载规则:
重载(Overload)和重写(Override)的区别
就是在子类中把父类本身有的方法重新写一遍。子类继承了父类原有的方法。
子类实现父类的同名方法
,
并且参数的类型和个数完全相同
,
这种情况称为
覆写
/
重写
/
覆盖.
子类访问权限要大于父类
// Animal.java
public class Animal {
public void eat(String food) {
...
}
}
// Bird.java
public class Bird extends Animal {
// 将子类的 eat 改成 private
private void eat(String food) {
...
}
}
// 编译出错
Error:(8, 10) java: com.bit.Bird中的eat(java.lang.String)无法覆盖com.bit.Animal中的
eat(java.lang.String)
正在尝试分配更低的访问权限; 以前为public
有了这个注解能帮我们进行一些合法性校验. 例如不小心将方法名字拼写错了 (比如写成 aet), 那么此时编译器就会发 现父类中没有 aet 方法, 就会编译报错, 提示无法构成重写.提高了写代码的效率.
// Bird.java
public class Bird extends Animal {
@Override
private void eat(String food) {
...
}
}
同一个方法名字,提供不同版本的实现,称为方法重载 补充:构造方法也可以重载
class Test{
public static void main(String[] args) {
int a=10;
int b=20;
int i=add(a,b);
System.out.println(i);
double a2=10.5;
double b2=12.5;
double i2=add(a2,b2);
System.out.println(i2);
}
public static int add(int x,int y){
return x+y;
}
public static double add(double x,double y){
return x+y;
}
}
//结果
30
23
如代码中一样,通过传入的参数类型不同,确定调用哪种的重载方法。
下一篇