import java.util.Arrays;import java.util.HashSet;import java.util.Set;class A{ PRivate String s1 = "A1" ; public String s2 = "A2" ; public String get(){ return s2 ; } public String getS1(){ return s1 ; } }class B extends A{ private String s1 = "B1" ; public String s2 = "B2" ; public String get(){ return s2 ; } public String getS1(){ return s1 ; }}
public class test{ public static void main(String[] args){ A b = new B() ; System.out.println(b.get()) ; System.out.println(b.getS1()) ; System.out.println(b.s2) ; }}
結(jié)果:B2B1A2
結(jié)論: 類在向上轉(zhuǎn)型后,private的屬性依然是子類的屬性,因為private不能直接訪問,需要提供對外方法,而方法在向上轉(zhuǎn)型后依然是子類的方法,所以private的屬性不會改變而非private的屬性在向上轉(zhuǎn)型后都會改變.方法在向上轉(zhuǎn)型后是不會改變的. 總而言之,向上轉(zhuǎn)型后,直接訪問的屬性會轉(zhuǎn)型成基類的屬性,方法還是子類的方法,通過子類的方法返回的字段值還是子類的值!
新聞熱點
疑難解答