一,谈向上转换,或者上溯造型
- 什么是向上转换(上溯造型),一句话就是父类的引用指向子类的对象。或者把子类的对象当作父类来用
- 为什么要进行向上转换?我们先看一个例子吧!
@Test public void test08() { Demo1_7_1 d=new Demo1_7_1(); testDemo1_7_1(d); } public void testDemo1_7_1(Demo1_7_1 d){ d.test1(); } class Demo1_7{ public void test1() { System.out.println("Demo1_7"); } } class Demo1_7_1 extends Demo1_7{ public void test1(){ System.out.println("Demo1_7_1"); } }
testDemo1_7_1方法是入参为Demo1_7_1的,这个时候我需求发生变更,Demo1_7再加一个子类Demo1_7_2,那我是不是还需要弄一个testDemo1_7_2的方法呢?View Code@Test public void test08() { Demo1_7_1 d=new Demo1_7_1(); testDemo1_7_1(d); Demo1_7_2 d2=new Demo1_7_2(); testDemo1_7_2(d2); } public void testDemo1_7_1(Demo1_7_1 d){ d.test1(); } public void testDemo1_7_2(Demo1_7_2 d){ d.test1(); } class Demo1_7{ public void test1() { System.out.println("Demo1_7"); } } class Demo1_7_1 extends Demo1_7{ public void test1(){ System.out.println("Demo1_7_1"); } } class Demo1_7_2 extends Demo1_7{ public void test1(){ System.out.println("Demo1_7_1"); } }