美文网首页
如何理解Java中"父类对象由子类实例化"?

如何理解Java中"父类对象由子类实例化"?

作者: 夏威夷的芒果 | 来源:发表于2020-02-25 15:40 被阅读0次
import java.io.*;

class A {
    public void fun1() {
        System.out.println("111");
    } //定义父类中非静态的fun1方法

    public static void fun2() {
        System.out.println("222");
    } //定义父类中静态的fun2方法
}

class B extends A {
    public void fun1() {
        System.out.println("333");
    } //覆写父类A中非静态的fun1方法

    public static void fun2() {
        System.out.println("444");
    } //覆写父类A中静态的fun2方法

    public void fun3() {
        System.out.println("555"); } //定义子类自己的方法

}

class test {
    public static void main(String[] args) throws java.lang.Exception {
        System.out.println("hi");
        A a = new B();
        a.fun1(); // 子类重写父类非静态方法,多态下访问的是子类的成员方法。
        a.fun2(); // 子类重写父类静态方法,多态下访问的是父类的静态方法。
        a.fun3(): // 无法执行,父类中没有定义fun3方法
    }
}

总结下的话就是:
1:当父类和子类具有相同的非静态成员变量,那么在多态下访问的是父类的成员变量
2:当父类和子类具有相同的静态成员变量,那么在多态下访问的是父类的静态成员变量
所以:父类和子类有相同的成员变量,多态下访问的是父类的成员变量。
3:当父类和子类具有相同的非静态方法(就是子类重写父类方法),多态下访问的是子类的成员方法。
4:当父类和子类具有相同的静态方法(就是子类重写父类静态方法),多态下访问的是父类的静态方法。
@爵士稿手

相关文章

  • 如何理解Java中"父类对象由子类实例化"?

    总结下的话就是:1:当父类和子类具有相同的非静态成员变量,那么在多态下访问的是父类的成员变量2:当父类和子类具有相...

  • java 继承 子类强转父类 父类强转子类

    Java 继承 继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法...

  • Java 面向对象

    JAVA继承 继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,...

  • python学习笔记-day020

    1.通过对象调用类中的方法 2.子类调用父类中的方法 3.初识继承 子类以及子类实例化的对象 可以访问父类的任何方...

  • 理解设计模式的工厂模式

    设计模式-如何理解工厂模式? 定义: 创建对象的接口,让子类决定实例化哪个类。工厂方法将类的实例化延迟到子类,而子...

  • java对象实例化时的顺序(静态成员变量、静态代码块、成员变量、

    周末补了一下java对象实例化的顺序,用几个测试案例记录下: 测试代码: 子类继承父类,运行顺序: 父静态——>子...

  • Java中对象的初始化生成过程

    Java是面向对象的一种语言,在Java对象生成的过程,涉及子类和父类的加载、静态成员变量的初始化、子类和父类对象...

  • Java继承

    继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父...

  • JAVA 继承

    继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父...

  • Java 构造方法中的多态

    类的实例化顺序是先实例化父类在实例化子类,也就是先调用父类的构造方法,再调用子类的构造方法,如果在构造方法中调用其...

网友评论

      本文标题:如何理解Java中"父类对象由子类实例化"?

      本文链接:https://www.haomeiwen.com/subject/ztptchtx.html