在java的继承机制中,子类可以覆盖父类中的方法。
Base.java
public class Base {
public Base(){
System.out.println("Base");
}
public void foo(){
System.out.println("foo in father");
}
}
Checket.java:
public class Checket extends Base {
public Checket(){
super();
System.out.println("Checket");
}
@Override
public void foo(){
System.out.println("foo in son");
}
}
MainC.java:
public class MainC {
public static void main(String [] args){
Checket c = new Checket();
c.foo();
}
}
Checket.java中foo函数覆写了父类Base中的foo方法,而@Override 关键字(我就把它理解成了关键字)的作用在于,告诉编译器,如果foo这个方法存在于父类中,那么编译通过,如果在父类中不存在,那么就会报错:
Thread [main] (Suspended (The method foo() of type Checket must override or implement a supertype method))
Checket.foo() line: 9
MainC.main(String[]) line: 5
这里说的存在,是指方法名称,参数,都要一致。