永发信息网

C#编程需要点睛

答案:1  悬赏:30  手机版
解决时间 2021-05-20 01:01
  • 提问者网友:藍了天白赴美
  • 2021-05-19 15:03

using system;

public class student

{

protected double Allow;

public double allowance1()

{

Allow = 100;

return Allow;

}

public virtual double allowance2()

{

Allow=1000;

return Allow;

}

}

public class PostGraduate : student

{

new public double allowance1()

{

Console.WriteLine("计算研究生的津贴:");

return 1.2 * base.allowance1();

}

public override double allowance2()

{

Console.WriteLine("计算研究生的津贴:");

return 1.2*base.allowance2();

}

}

public class Test

{

public static void Main()

{

student s = new student();

PostGraduate pg = new PostGraduate();

s = pg;

Console.WriteLine("该学生的津贴为:{0}",s.allowance1());

Console.WriteLine("该学生的津贴为:{0}",s.allowance2());

Console.WriteLine("该学生的津贴为:{0}", pg.allowance1());

Console.WriteLine("该学生的津贴为:{0}", pg.allowance2());

}

}

-------------------------------------------------------------------------------------------

我想请问下,第一个输出Console.WriteLine("该学生的津贴为:{0}",s.allowance1());

s.allowance1() 其中的pg已经把地址传给S了,可是为什么第一个输出还是调用基方法,而不是派生类的第一个方法

最佳答案
  • 五星知识达人网友:拾荒鲤
  • 2021-05-19 15:26

*********您好!Yadie.23很高兴能为你解答。*********
+++++++++++++++++++++++++++++++++++++++++++++++++


其中的pg已经把地址传给S了??


不是吧。。只是值而已。。


+++++++++++++++++++++++++++++++++++++++++++++++++
You can have a try,maybe my answer useful to you.
如满意,Yadie.23十分感谢您的采纳。*^-^*

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯