zoukankan      html  css  js  c++  java
  • 关于this和super的区别

    先看实例:

    父类
    class BaseClass{ 
        private int value; 
        public void printValue() { 
            this.run();		//注意这儿的是this
        } 
        private void run(){ 
            System.out.println("BaseClass.run():"+this.value); 
        } 
    }

    class ChildClass extends BaseClass { 
        private int value = 100; 
        public void printValue() { 
            super.run();		//注意这儿的是super
        } 
        //重写 
        private void run(){ 
            System.out.println("ChildClass.run():"+super.value);
        } 
    }

    class GrandsonClass extends ChildClass { 
        private int value = 200; 
        //再次重写 
        public void run() { 
            System.out.println("SunziClass.run():"+super.value); 
        } 
    } 

    测试:

    public class Test { 
          public static void main(String[] args) { 
                    BaseClass child = new ChildClass(); 
                    fc.printValue(); 
                    BaseClass Grandson = new GrandsonClass (); 
                    fc1.printValue();
                    ChildClass cc = new <span style="font-family: Arial, Helvetica, sans-serif;">GrandsonClass</span><span style="font-family: Arial, Helvetica, sans-serif;">(); </span>
                    cc.<span style="font-family: Arial, Helvetica, sans-serif;">printValue</span><span style="font-family: Arial, Helvetica, sans-serif;">(); </span>
        <span style="white-space:pre">	</span> } 
    } 
    运行结果如下: 
    ChildClass.run():0; 
    SunziClass.run():100; 
    FatherClass.run():0; 
    重写父类方法属性,就是再创建了一个子类的特征,当你用this的时候,就覆盖了父类的特征了,但是父类特征还在那儿,用super就能访问道,但是只能在对象的内部使用.对象外面就只能看到覆盖了父类特征的子类特征了.
    其实就是一句:"this是当前对象在堆空间的引用地址,super是当前对象的父类特征的引用

    this获取到本类所有成员和父类的public成员,super是获取父类public成员和受保护

  • 相关阅读:
    Servlet常用类
    Java库使用----xstream1.3.1
    字符串处理---统计每一行字符串当中的字符“u”个数
    读写锁
    求阶乘
    Fibonacci数列
    22.2-按照升序显示不重复的单词
    22.1-在散列集上进行集合操作
    完美世界-2015校园招聘-java服务器工程师-成都站
    运用jQuery写的验证表单
  • 原文地址:https://www.cnblogs.com/dengshiwei/p/4258576.html
Copyright © 2011-2022 走看看