慕九州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()方法执行");
}
}
在我看来,继承父类并重写父类的方法的目的是为了实现“多态”,也就是在调用方法时优先调用子类的方法
但看了你的代码,你直接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入门第二季
531293 学习 · 6327 问题
相似问题