说白了就是强制转换,用父类的类型来操作子类的指针,因此调用范围会限制在父类中,但是调用的是子类实现的方法
package com.java.Obj;
public class Obj {
public void Test()
{
System.out.println("Obj Test");
}
}
package com.java.Obj;
public class Sub1 extends Obj {
public void Test()
{
System.out.println("Sub1 Test");
}
}
package com.java.Obj;
public class Sub2 extends Obj {
public void Test()
{
System.out.println("Sub2 Test");
}
}
import com.java.Obj.Obj;
import com.java.Obj.Sub1;
import com.java.Obj.Sub2;
public class Test11A {
public void check(Obj j) {
j.Test();
}
public static void main(String[] args) {
Test11A test11a = new Test11A();
Obj obj = new Sub1();
Obj obj2 = new Sub2();
test11a.check(obj);
test11a.check(obj2);
System.out.println("hello");
}