@Override与方法的重写

来源:互联网 发布:maven.apache.org 编辑:程序博客网 时间:2024/05/05 17:16

@Override注解可以帮助检查父类中是否有该方法,但不加@Override,子类也可以复写父类的方法,且可以使用父类的引用调用该方法。

class A {    public void sayInA(int p ){        System.out.println("In A:"+p);    }    public void sayInAA(int p ){        System.out.println("In A:"+p);    }}class B extends A{    public B(){        super();        System.out.println("say some thing");    }    public void sayInA(int p ){        System.out.println("In B:"+p);    }}

    public static void main(String[] args) {        A b = new B();        b.sayInA(5);    }

output:

In B:5


main方法中的引用b实际上指向的对象是B的对象,调用的B中方法的实现。


class B extends A{    public B(){        super();        System.out.println("say some thing");    }    public void sayInA(int p ){        System.out.println("In B:"+p);        super.sayInAA(p);        super.sayInAA(p);    }}

另外,在子类中可以任意调用父类的方法,但在子类的构造方法中,如果要调用父类的构造方法,那必须放在首行,因为父类在构造方法要初始化,子类在构造方法中可能会用到父类初始化的变量。


0 0