@Override与方法的重写

本文通过示例代码展示了Java中如何进行方法复写,包括使用@Override注解及父类方法的调用方式,并解释了子类如何通过父类引用调用自身的方法实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

@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);
    }
}

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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值