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

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

  • 相关阅读:
    创建用户中遇到的问题
    创建用户和用户组
    ActiveMq在linxu系统上的启动
    CentOs 6.5 安装jdk
    卸载CentOs6.5自带的OpenJDK
    centos 6.5 添加ip地址
    CentOs 6.5的安装
    jna的简单测试
    电脑硬盘空间怎么越来越小
    build path contains duplicate entry:'src' for project 'XXX'
  • 原文地址:https://www.cnblogs.com/godwhisper/p/6907978.html
Copyright © 2011-2022 走看看