如果你用
override,
则无论调用的是
A
类还是
B
类中的
TEST()
,系统都会找到它实质类的
TEST()
;
如果是用的 New ,则可以通过类型转换调用到基类的 TEST() ;
下面是 override 的情况:
A a = new A();
B b = new B();
A a1=new B();
a.Test();// 调用 A 中 Test();
b.Test();// 调用 B 中 Test();
a1.Test();// 调用 B 中 Test(); 系统会自动识别 a1 是 B 的实例
((A)b).Test();// 与上面相同
下面是 new 的情况:
A a = new A();
B b = new B();
A a1=new B();
a.Test();// 调用 A 中 Test();
b.Test();// 调用 B 中 Test();
a1.Test();// 调用 A 中 Test();
((A)b).Test();// 与上面相同
如果是用的 New ,则可以通过类型转换调用到基类的 TEST() ;
下面是 override 的情况:
A a = new A();
B b = new B();
A a1=new B();
a.Test();// 调用 A 中 Test();
b.Test();// 调用 B 中 Test();
a1.Test();// 调用 B 中 Test(); 系统会自动识别 a1 是 B 的实例
((A)b).Test();// 与上面相同
下面是 new 的情况:
A a = new A();
B b = new B();
A a1=new B();
a.Test();// 调用 A 中 Test();
b.Test();// 调用 B 中 Test();
a1.Test();// 调用 A 中 Test();
((A)b).Test();// 与上面相同