class Calculate
{
protected int num1;
protected int num2;
public virtual void DispalyResult()
{
Console.WriteLine("请输入两个数");
num1 = Convert.ToInt32(Console.ReadLine());
num2 = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("两个数的结果是");
}
}
class Add:Calculate
{
public override void DispalyResult()
{
int re = num1 + num2;
Console.WriteLine("两个数之和为{0}",re);
}
}
class Sub:Calculate
{
public override void DispalyResult()
{
int re = num1 - num2;
Console.WriteLine("两个数之差是{0}", re);
}
}
class Program
{
static void Main(string[] args)
{
#region
#endregion
Calculate c = new Calculate();
c.DispalyResult();
Console.WriteLine("请输入运算符“+,-,*,/”");
string s = Console.ReadLine();
if (s == "+")
{
Calculate ca = new Add();
ca.DispalyResult();
}
if (s == "-")
{
Calculate ca = new Sub();
ca.DispalyResult();
}
}
public override void DispalyResult()
{
base.DispalyResult(); //加上
int re = num1 + num2;
Console.WriteLine("两个数之和为{0}",re);
}
基类里面的 Console.WriteLine("两个数的结果是"); 删除。
另外这里用函数重写毫无意义。