首页 > 代码库 > 对子类赋给父类的思考
对子类赋给父类的思考
2014-12-03
13:57:48
1 /** 2 * @author nlee 3 * @version 1:09:38 PM Dec 3, 2014 4 */ 5 package test; 6 7 public class T extends T1 8 { 9 int b;10 11 public T(int s1)12 {13 super(s1);14 b = 111;15 }16 17 public void fun2()18 {19 System.out.println("T===fun2");20 }21 22 public static void main(String[] args)23 {24 T t = new T(5);25 t.fun1();26 t.fun2();27 System.out.println(t.b);28 System.out.println(t.a);29 T1 t1 = t;30 t1.fun1();31 t1.fun2();32 System.out.println(t1.a);33 // System.out.println(t1.b);34 }35 }36 37 class T138 {39 int a;40 41 public T1(int s)42 {43 a = s;44 }45 46 public int get()47 {48 return a;49 }50 51 public void set(int d)52 {53 a = d;54 }55 56 public void fun1()57 {58 System.out.println("T1---fun1");59 }60 61 public void fun2()62 {63 System.out.println("T1---fun2");64 }65 }
33行被注释的代码
33 // System.out.println(t1.b);
若执行则会报错。
因为29行代码
29 T1 t1 = t;
将子类对象实例赋给父类对象,t1和t指向是同一内存块,但是t1不能访问子类的字段,因此t1不能访问变量b。
对子类赋给父类的思考
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。