父类:
package com.neusoft.chapter07; public class Father { public int i = 1; public void say(){ System.out.println("我是杜江"); } }
子类:
package com.neusoft.chapter07; public class Son extends Father{ public int i = 2; public void say(){ System.out.println("我是嗯哼"); } }
1、父类指向父类:
package com.neusoft.chapter07; public class Test { public static void main(String[] args) { Father f = new Father(); System.out.println(f.i); f.say(); } }
结果:
1
我是杜江
-----------------------------------------------------------------------------
2、子类指向子类:
package com.neusoft.chapter07; public class Test { public static void main(String[] args) { Son s = new Son(); System.out.println(s.i); s.say(); } }
结果:
2
我是嗯哼
------------------------------------------------------------------------------
3、父类指向子类-----(上溯造型)
package com.neusoft.chapter07; public class Test { public static void main(String[] args) { Father f = new Son(); System.out.println(f.i); f.say(); } }
结果:
1
我是嗯哼
-----------------------------------------------------------------------------
4、父类转子类-----(下塑造型)
package com.neusoft.chapter07; public class Test { public static void main(String[] args) { Father f = new Son(); Son s = (Son)f; System.out.println(s.i); s.say(); } }
结果:
2
我是嗯哼
上溯造型特征:
具有继承或实现关系
父类和子类均有一个成员变量i最后拿到的是父类的i
父类和子类均有一个say方法,最后执行的是子类的方法(say方法重写)
下塑造型:
先上转再向下转