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

来源:9-2 Java 中的方法重写

慕九州4223353

2017-09-21 09:23

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回答

  • 容错率
    2017-09-26 16:22:20
  • johnnykuo2015
    2017-09-21 11:06:21

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

    但看了你的代码,你直接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()方法执行");

        }

    }

Java入门第二季 升级版

课程升级!以终为始告别枯燥,在开发和重构中体会Java面向对象编程的奥妙

530559 学习 · 6091 问题

查看课程

相似问题