java之继承中的静态变量

package Test;

/**
 * Created by wangbin10 on 2018/7/9.
 * 我们知道静态变量属于类级别变量,对应每个类只有一份,类的所有实例共有一份,而成员变量则分别属于每个对象;
 * 那么在类的继承中,父类的静态变量和成员变量,子类都会继承,继承的原则是什么?通过下面的测试,我们的结论是:
 * 1.不仅类的对象共享类的静态变量,父类的所有子类对象也都共享父类的静态变量,有且仅有一份,对其进行修改,会影响到所有类及对象;
 * 2.子类复制父类的成员变量,每个子类持有一份,互不影响。
 */
public class Parent {
    public static String STATIC_VAR = "parent";
    public String MEMBER_VAR = "member";

    public static void main(String[] args) {
        Child1 c1 = new Child1();
        Child2 c2 = new Child2();
        c1.setVar("child1");
        System.err.println(c1.getVar());
        System.err.println(c2.getVar());//输出:child1,说明子类共享父类的静态变量

        c1.setMember("mem change");
        System.err.println(c1.getMember());
        System.err.println(c2.getMember());//输出:member,说明子类分别复制并持有一份父类的成员变量,互不影响
    }
}

class Child1 extends Parent {
    void setVar(String var) {
        STATIC_VAR = var;
    }

    String getVar() {
        return STATIC_VAR;
    }

    void setMember(String mem) {
        MEMBER_VAR = mem;
    }

    String getMember() {
        return MEMBER_VAR;
    }
}

class Child2 extends Parent {
    String getVar() {
        return STATIC_VAR;
    }

    String getMember() {
        return MEMBER_VAR;
    }
}

 

转载于:https://www.cnblogs.com/wangbin2188/p/9282840.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值