java向上转型的问题

王朝学院·作者佚名  2016-05-28
窄屏简体版  字體: 小  |  中  |  大  |  超大  

java向上转型的问题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) ; }}

结果:B2B1A2

结论: 类在向上转型后,private的属性依然是子类的属性,因为private不能直接访问,需要提供对外方法,而方法在向上转型后依然是子类的方法,所以private的属性不会改变而非private的属性在向上转型后都会改变.方法在向上转型后是不会改变的. 总而言之,向上转型后,直接访问的属性会转型成基类的属性,方法还是子类的方法,通过子类的方法返回的字段值还是子类的值!

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航