(java)超类s=新子类

(java)超类s=新子类,java,Java,父类: public class superClass { private void m1() { System.out.println("SuperClass's m1()"); } public void m2() { System.out.println("SuperClass's m2()"); m1(); } } 儿童班: public class Modify extends superClass

父类:

public class superClass {

    private void m1() {
        System.out.println("SuperClass's m1()");
    }

    public void m2() {
        System.out.println("SuperClass's m2()");
        m1();
    }
}
儿童班:

public class Modify extends superClass {

    public void m1() {
        System.out.println("Modify's method1");
    }

    public static void main(String args[]) {
        superClass s = new Modify();
        s.m2();
    }
}
我何时使用:

superClass s = new Modify();
而不是:

Modify s = new Modify();
是否可以在左侧将s声明为超类,但在右侧调用“new Modify()”? 如果我们将s声明为Modify类,难道我们不应该只调用'newmodify()'吗

是否可以在左侧将s声明为超类,但 在右侧调用“new Modify()”

是的,这是可能的,在Java中称为多态行为

如果我们将s声明为 修改类

由于
Modify
超类的子类,因此它继承了所有超类公共方法。所以,调用超类公共方法是完全可以的,因为所有公共方法都是由子类继承的。这在Java中称为继承


阅读更多关于和的内容,然后您将了解其用法

它是一种对子类对象的多态性超类引用

你为什么要这样做?

Super s = new Child();

从s中,您可以调用super的所有方法,因为它指向一个子对象,而子对象
is-a
super,您也可以使用被重写的子对象的方法。

您可以运行并检查行为:)我什么时候使用它们?