zoukankan      html  css  js  c++  java
  • super限定,子类中系统查找变量的顺序:

    示例代码如下:

    import static java.lang.System.*;
    //-父类:
    class BaseClass{
    	public int a=7;
    }
    
    //-子类:
    public class SubClass extends BaseClass{
    	public int a=5;
    
    	public static void main(String[] args){
    		SubClass s=new SubClass();
    		s.outSuba();
    		s.outBasea();
    	}
    	
    	public void outSuba(){
    		out.println(a);
    	}
    
    	public void outBasea(){
    		out.println(super.a);
    	}
    }
    

    运行结果:

    代码说明:

    1、父类BaseClass和子类SubClass都定义了名为a的实例变量,子类a的实例变量将会隐藏父类a的实例变量

    2、当系统创建子类SubClass对象s时,实际会为s对象分配两块内存存放变量a,一块存放子类的变量a,一块存放从父类继承来的变量a

    在子类中调用某变量a,系统的查找顺序为:

    1、查找当前调用方法中是否有名为a的局部变量

    2、查找当前类中是否包含名为a的成员变量

    3、查找当前类的父类中是否包含名为a的成员变量,依次上溯所有父类,直到java.lang.Object类

    4、如果最终不能找到名为a的成员变量,则系统出现编译错误

  • 相关阅读:
    MarkDown 语言简单使用
    开机自启宽带连网设置问题
    JqueryEasyUI EasyLoader
    JqueryEasyUI $.Parser
    FileUpload一键自动上传
    Git读档
    JavaScript typeof运算符和数据类型
    JavaScript 函数 (function)
    Javascript 对象(Object)
    JavaScript 数组(Array)
  • 原文地址:https://www.cnblogs.com/baby-zhude/p/8018821.html
Copyright © 2011-2022 走看看