zoukankan      html  css  js  c++  java
  • 重写与隐藏

         静态方法、成员变量不能重写,只可以隐藏;实例方法可以重写

         重写与隐藏的本质区别:重写是动态绑定,根据运行时引用所指向对象的实际类型来决定调用相关类的成员。而隐藏是静态绑定的,根据编译时引用的静态类型来决定调用相关类的成员。换句话说,如果子类重写了父类的方法,当父类的引用指向子类对象时,通过父类的引用调用的是子类的方法。如果子类隐藏了父类的方法(成员变量),通过父类的引用调用的仍然是父类的方法(成员变量),如下:

    class SuperXieYuYan{
        String s="SuperXieYuYan";
        public void mInstance(){
            System.out.println("mInstance() in SuperXieYuYan");
        }
        public static void mStatic(){
            System.out.println("mStatic() in SuperXieYuYan");
        }
    }
    public class XieYuYan extends SuperXieYuYan{
        String s="XieYuYan";
        public void mInstance(){
            System.out.println("mInstance() in XieYuYan");
        }
        public static void mStatic(){
            System.out.println("mStatic() in XieYuYan");
        }
        public static void main(String args[]){
            SuperXieYuYan sxyy=new SuperXieYuYan();
            XieYuYan xyy=new XieYuYan();
            System.out.println("父类的表现:");
            System.out.println(sxyy.s);
            sxyy.mInstance();
            sxyy.mStatic();
            System.out.println("子类的表现:");
            System.out.println(xyy.s);
            xyy.mInstance();
            xyy.mStatic();
            //将子类引用赋给父类
            sxyy=xyy;
            System.out.println("父类引用指定子类实例后的表现:");
            System.out.println(sxyy.s);
            sxyy.mInstance();
            sxyy.mStatic();
            }
    }

    输出为:

    父类的表现:
    SuperXieYuYan
    mInstance() in SuperXieYuYan
    mStatic() in SuperXieYuYan
    子类的表现:
    XieYuYan
    mInstance() in XieYuYan
    mStatic() in XieYuYan
    父类引用指定子类实例后的表现:
    SuperXieYuYan
    mInstance() in XieYuYan
    mStatic() in SuperXieYuYan

    在将子类实例赋给父类实例后,父类实例调用的还是原来的成员变量和静态方法

  • 相关阅读:
    Tips_of_JS 之 利用JS实现水仙花数的寻找与实现斐波那契数列
    我的天!居然可以这么“弹”!—— 弹性盒布局属性详述
    震惊,正儿八经的网页居然在手机上这样显示!
    这是假的JS——利用CSS Animation实现banner图非交互循环播放
    小K的H5之旅-HTML5与CSS3部分新属性浅见
    CSS小技巧-煎蛋的画法~
    小K的H5之旅-实战篇(一)
    SSM+Redis简介
    Hadoop HA(高可用搭建)
    hadoop完全分布式搭建(非高可用)
  • 原文地址:https://www.cnblogs.com/godwhisper/p/6907978.html
Copyright © 2011-2022 走看看