Java 为什么我要创建子类的新实例并使用a()的函数,a()将运行子类';b()的s函数?

Java 为什么我要创建子类的新实例并使用a()的函数,a()将运行子类';b()的s函数?,java,oop,Java,Oop,父类定义a()和b()函数,a()函数使用b()函数;然后定义子类,并重写子类中的b()函数。为什么我要创建子类的新实例并使用a()的函数,a()将运行子类的b()函数 这就是重写和继承的工作方式Child类从父类继承方法a(),并重写b()。因此,当您调用Child.a()JVM看到Child类有自己版本的方法b(),并调用该版本。 在此处查看有关重写的更多信息:为什么结果是子函数而不是父函数?因为否则它不会是重写。 public class Parent { public void

父类定义a()和b()函数,a()函数使用b()函数;然后定义子类,并重写子类中的b()函数。为什么我要创建子类的新实例并使用a()的函数,a()将运行子类的b()函数


这就是重写和继承的工作方式
Child
类从父类继承方法
a()
,并重写
b()
。因此,当您调用
Child.a()
JVM看到
Child
类有自己版本的方法
b()
,并调用该版本。
在此处查看有关重写的更多信息:

为什么结果是子函数而不是父函数?因为否则它不会是重写。
public class Parent {
    public void a() {
        b();
    }

    public void b() {
        System.out.println("Parent's function");
    }
}

public class Child extends Parent{
    public void b() {
        System.out.println("Child's function");
    }
}

public class TestFunction {
    public static void main(String[] args) {
        Child child = new Child();
        child.a();
    }
}