62,614
社区成员
发帖
与我相关
我的任务
分享
static class Parent {
public void print() {
System.out.println("父类");
}
}
static class Child extends Parent {
@Override
public void print() {
System.out.println("子类");
}
}
如上示例代码,你可以认为Child拥有两个print()方法,一个是从父类中继承过来的,一个是覆盖的,用代码模仿如下:
static class Child extends Parent {
// 从父类继承过来的
public void print() {
System.out.println("父类");
}
// 子类覆盖的
@Override
public void print() {
System.out.println("子类");
}
}
当我们new Child()时,只会生成一个Child对象,并不会有Parent对象,当我们调用Child对象的pint方法时,走的是覆盖的print(),当你调用super.print()时,则走的是从父类继承过来的print(),也就是说可以认为Child中有两个print方法,一个是从父类继承过来的,一个是覆盖的,示例代码如下:
static class Child extends Parent {
@Override
public void print() {
super.print();
System.out.println("子类");
}
}
public static void main(String[] args) {
new Child().print();
// 输出:父类 子类
}
如果我的答案帮助到了你,请结贴给点积分,谢谢^_^