写在最前
前言
和C++不同,Java中的基类如果有很多方法重载,那么导出类对其中一个重载方法进行覆盖,重载机制不会收到任何影响
Java继承并不会导致名称屏蔽
- 注意一点,就是导出类继承基类的时候,如果将基类的重载中的一个方法进行了覆盖,那么是不会影响到其他重载方法的
- 举个例子感受一下:
class Father {
public String name;
public Integer age;
public Boolean status;
public void set(String name){
this.name = name;
}
public void set(String name,Integer age){
this.name = name;
this.age = age;
}
public void set(String name,Integer age,Boolean status){
this.name = name;
this.age = age;
this.status = status;
}
}
class Son extends Father {
@Override
public void set(String name){ 试试看覆盖其中一个重载方法会不会打乱原先的重载关系
this.name = name + " is son";
}
}
class Solution {
public static void main(String[] args) {
Father son = new Son();
son.set("son"); 测试一下就可以发现,这个方法已经是改成了子类的覆盖之后的方法了
System.out.println(son.name);
son.set("test",1); 但是之前重载的关系并没有因为覆盖而打乱!
System.out.println(son.name);
}
}
---------------------------------------------------
输出:
son is son
test