zoukankan      html  css  js  c++  java
  • 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;
        }
    }
  • 相关阅读:
    selenium获取Cookie操作
    分布式锁-常用技术方案
    合成模式(Composite)-结构型
    享元模式-结构型
    桥接模式-结构型
    适配器模式-结构型
    建造者模式-创建型
    单例和原型模式-创建型
    外观(门面)模式-结构型
    JDK QUEUE队列
  • 原文地址:https://www.cnblogs.com/wangbin2188/p/9282840.html
Copyright © 2011-2022 走看看