首页 > 学院 > 开发设计 > 正文

java向上转型的问题

2019-11-14 22:00:08
字体:
来源:转载
供稿:网友
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的属性在向上转型后都会改变.方法在向上转型后是不会改变的. 总而言之,向上转型后,直接访问的属性会转型成基类的属性,方法还是子类的方法,通过子类的方法返回的字段值还是子类的值!


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表