本文借鉴于JavaGuide,用于学习记录
重载 就是同样一个方法能够根据不同的输入数据,做出不同的处理
重写 就是当子类继承自父类的相同方法,输入数据一样,但是要做出有别于父类的响应时,你就要覆盖父类的方法
发生在同一个类中(或者父类和子类之间),方法名必须相同,参数类型不同、个数不同、顺序不同,方法返回值和访问修饰符可以不同
重载是发生在编译期
重写发生在运行期,是子类对父类的允许访问的方法的实现过程进行重新编写
private/final/static
则子类就不能重写改方法,但是被static修饰的方法能够被再次声明 重写 就是子类对父类方法的重新改造,外部样子不能改变,内部逻辑可以改变
重写是发生在运行期
重写 如果方法的返回类型是void和基本数据类型,则返回值重写时不可修改。但是如果方法的返回值是引用类型,重写时是可以返回改引用类型的子类的
public class Hero { public String name() { return "超级英雄"; } } public class SuperMan extends Hero{ @Override public String name() { return "超人"; } public Hero hero() { return new Hero(); } } public class SuperSuperMan extends SuperMan { public String name() { return "超级超级英雄"; } @Override public SuperMan hero() { return new SuperMan(); } }