重写(Override)
1) 方法重写(Override):又叫做覆写,子类与父类的方法返回类型一样、方法名称一样,参数一样,这样我们说子类与父类的方法构成了重写关系。
2) 方法重写与方法重载之间的关系:重载发生在同一个类内部的两个方法或多个方法。重写发生在父类和子类之间。
3) 当两个方法形成重写关系时,可以在子类方法中通过super.run()形式调用父类的run()方法,其中super.run不必放在第一行语句,因此此时父类对象已经构造完毕,先调用父类的run()方法还是先调用子类的run()方法是根据程序逻辑决定的。下面举个例子:
public class InheritenceTest {
public static void main(String[] args) {
Dog dog = new Dog();
dog.run();
}
}
class Animal {
public void run() {
System.out.println("animal is running");
}
}
class Dog extends Animal {
public void run() {
System.out.println("Dog is running");
super.run();//调用父类的run方法
}
}
输出结果:
Dog is running
animal is running
4) 在定义一个类的时候,如果没有显式指定该类的父类,那么该类就会继承于java.lang.Object(JDK提供的一个类,Object类是Java中所有类直接或间接父类)。下面举个例子:
public class InheritenceTest {
public static void main(String[] args) {
Son son = new Son();
}
}
class Grandpa {
public Grandpa() {
System.out.println("grandpa");
}
}
class Father extends Grandpa {
public Father() {
System.out.println("father");
}
}
class Son extends Father {
public Son() {
System.out.println("son");
}
}
输出结果:
grandpa
father
son
Grandpa就是继承Object