为了账号安全,请及时绑定邮箱和手机立即绑定

父类定义一个private方法子类不可以重写,那这个怎么可以重写。

public class Overwrite {
	public static void main(String[] atgs) {
		B1 b = new B1();
		b.fun();
	}
}

class A1{
	private void fun() {
		System.out.println("A类中fun()方法执行");
	}
}

class B1 extends A1{
	public void fun() {
		System.out.println("B类中fun()方法执行");
	}
}


正在回答

2 回答

0 回复 有任何疑惑可以回复我~

在我看来,继承父类并重写父类的方法的目的是为了实现“多态”,也就是在调用方法时优先调用子类的方法

但看了你的代码,你直接new出来一个B1的对象,并运行B1的fun();方法,这个时候B1是否重写父类的方法已经不重要了!

最好的方式是这样的:

public class OverWrite {

    public static void main(String args[]) {

        A1 a1 = new A1();

        A1 a2 = new B1();

        a1.fun();

        a2.fun();

    }

}

class A1{

    public void fun() {

        System.out.println("A类中fun()方法执行");

    }

}

class B1 extends A1 {

    @Override

    public void fun() {

        System.out.println("B类中fun()方法执行");

    }

}

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

父类定义一个private方法子类不可以重写,那这个怎么可以重写。

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信