为了账号安全,请及时绑定邮箱和手机立即绑定

关于继承的一个小问题

关于继承的一个小问题

四季花海 2018-09-12 06:07:40
class Program 2     { 3         static void Main(string[] args) 4         { 5             TestClass2 tc2 = new TestClass2(); 6             TestClass tc = new TestClass2(); 7 8             Console.WriteLine(tc2.GetType().ToString()); 9             Console.WriteLine(tc.GetType().ToString());10        }11     }12 13     class TestClass14     {15         //some code16      }17 18     class TestClass2:TestClass19     {20         //some code21     }各位大虾请看上面的代码,小弟想问的是第5、6行实例化后的TestClass2的两个对象tc和tc2有什么区别,输出的类型都是TestClass2,常用哪一种?
查看完整描述

2 回答

?
拉风的咖菲猫

TA贡献1995条经验 获得超2个赞

由于GetType()返回的是实例对象的类型,所以既然两个实例都是new TestClass2(),所以都返回TestClass2;

至于区别,主要是tc可以指向TestClass及其所有继承类的实例,而tc2只能指向所有TestClass2及其继承类的实例; 如果你还有别的类从TestClass继承,比如TestClass3,你可以写tc = new TestClass3()。这也是tc的好处。

这样用得多了后,渐渐就有了提炼接口的想法。这才是真正的好处。


查看完整回答
反对 回复 2018-09-16
?
狐的传说

TA贡献1804条经验 获得超3个赞

没有区别,常用第5行的这种

其实继承不是这么玩的,不配合工厂或者IOC,继承和接口没啥意思


查看完整回答
反对 回复 2018-09-16
  • 2 回答
  • 0 关注
  • 365 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信