关于c#中的继承的问题!
usingSystem;classA{publicA(){PrintFields();}publicvirtualvoidPrintFields(){}}classB:A...
using System;
class A
{
public A(){
PrintFields();
}
public virtual void PrintFields(){}
}
class B:A
{
int x=1;
int y;
public B(){
y=-1;
}
public override void PrintFields(){
Console.WriteLine("x={0},y={1}",x,y);
}
当使用new B()创建B的实例时,产生什么输出?
答:X=1,Y=0
=================================================================为什么y输出的是0呢? 展开
class A
{
public A(){
PrintFields();
}
public virtual void PrintFields(){}
}
class B:A
{
int x=1;
int y;
public B(){
y=-1;
}
public override void PrintFields(){
Console.WriteLine("x={0},y={1}",x,y);
}
当使用new B()创建B的实例时,产生什么输出?
答:X=1,Y=0
=================================================================为什么y输出的是0呢? 展开
展开全部
using System;
class A
{
public A(){
PrintFields(); //运行到这里就跳到了public override void PrintFields()方法,输出其实是在这里。
}
public virtual void PrintFields(){}
}
class B:A
{
int x=1;
int y;
public B()
{ //程序运行到这里的时候就跳到了A的PrintFields()方法
y=-1;
}
public override void PrintFields(){
Console.WriteLine("x={0},y={1}",x,y);
}
还没运行到y=-1; 就输出了。输出之后才运行y=-1;随即程序运行完毕!
class A
{
public A(){
PrintFields(); //运行到这里就跳到了public override void PrintFields()方法,输出其实是在这里。
}
public virtual void PrintFields(){}
}
class B:A
{
int x=1;
int y;
public B()
{ //程序运行到这里的时候就跳到了A的PrintFields()方法
y=-1;
}
public override void PrintFields(){
Console.WriteLine("x={0},y={1}",x,y);
}
还没运行到y=-1; 就输出了。输出之后才运行y=-1;随即程序运行完毕!
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询