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; } }
java之继承中的静态变量
猜你喜欢
转载自www.cnblogs.com/wangbin2188/p/9282840.html
今日推荐
周排行