猿问
new创建子类对象的时候,父类对象会被自动创建么?
疑问: 1、new 子类对象的时候,会生成父类对象么? 2、调用子类的构造函数的时候,为什么会先调用父类的构造函数呢?
吃鸡游戏
浏览 1074
回答 2
2回答
红糖糍粑
1. 当然不会。调用父类构造函数和生成一个父类的对象是两个概念。比如你有两个类A和B,B继承自A。那么你new B()的时候,只创建了一个B类型的对象(当然它可以转成A类型),但是整个过程中只有1个对象被创建了。2. 因为子类的逻辑要后执行。举例:class A { public int Number { get; set; } public A() { Number = 100; } } class B : A { public B() { Number = 200; } }如果问你new B()之后Number的值,你肯定会说200吧?因为100太奇怪了。就是这个道理,子类中的逻辑要确保最后执行,否则你岂不是永远修改不了Number的初始值?先执行父类的构造函数还有一个重要原因就是,子类的构造函数可能会用到一些成员,而这些成员是在父类的构造函数中初始化的。
0
0
0
达令说
首先调用父类构造函数,再调用子类构造函数
0
0
0
随时随地看视频
慕课网APP
相关分类
.NET
.net 中 字符串含有超链接,如何给超链接自动加上a标签?
1 回答
请问.net 中用jquery传值安全吗?
2 回答
我要回答