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; } }