这个c#代码中为什么结果为1 0,a类中有个构造函数那是干嘛用的,b类中也有构造函数,是继承了a类
这个c#代码中为什么结果为10,a类中有个构造函数那是干嘛用的,b类中也有构造函数,是继承了a类吗,那个y不是-1吗...
这个c#代码中为什么结果为1 0,a类中有个构造函数那是干嘛用的,b类中也有构造函数,是继承了a类吗,那个y不是-1吗
展开
2个回答
展开全部
A a = new A();
//new A() -> Print(), A 的 Print() 为空,什么都没有
B b = new B();
//new B(),由于 B 继承 A, new B() 时会先执行 public A(), 这个时候, B 内的 y=0
//输出 x=1, y=0
//new B() -> public A() (在这里的时候已经 print 了,y=0) -> public B() (y 被赋值 -1)
A c = new B();
//c 虽然实例化时使用的是 new B(),但其实际上还是一个A,public A() 是什么都没有的,并不会执行 public B()
//new A() -> Print(), A 的 Print() 为空,什么都没有
B b = new B();
//new B(),由于 B 继承 A, new B() 时会先执行 public A(), 这个时候, B 内的 y=0
//输出 x=1, y=0
//new B() -> public A() (在这里的时候已经 print 了,y=0) -> public B() (y 被赋值 -1)
A c = new B();
//c 虽然实例化时使用的是 new B(),但其实际上还是一个A,public A() 是什么都没有的,并不会执行 public B()
更多追问追答
追问
您中间的那段我还是没看懂
为什么y就得0了,那个print是空的,什么也没有还写他干嘛,我是初学者,麻烦
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询