C# 利用继承和多态知识点编程实现计算器功能。
时间: 2024-10-19 22:12:05 浏览: 6
在C#中,我们可以利用继承和多态这两个面向对象的核心特性来创建一个简单的计算器应用。首先,我们创建一个基础的`Calculator`类,它包含基本的加、减、乘、除操作方法。然后,我们可以为这个基础类设计几个派生类,每个类代表一种特定类型的运算,比如整数计算器`IntCalculator`、浮点数计算器`FloatCalculator`等。
```csharp
// 基础Calculator类
public abstract class Calculator
{
public abstract double Add(double a, double b);
public abstract double Subtract(double a, double b);
public abstract double Multiply(double a, double b);
public abstract double Divide(double a, double b);
}
// 整数计算器IntCalculator类
public class IntCalculator : Calculator
{
public override double Add(double a, double b) => (int)a + (int)b;
public override double Subtract(double a, double b) => (int)a - (int)b;
public override double Multiply(double a, double b) => (int)a * (int)b;
// 防止除法出错,这里假设a != 0
public override double Divide(double a, double b) => (double)(int)a / (int)b;
}
// 浮点数计算器FloatCalculator类
public class FloatCalculator : Calculator
{
public override double Add(double a, double b) => a + b;
public override double Subtract(double a, double b) => a - b;
public override double Multiply(double a, double b) => a * b;
public override double Divide(double a, double b) => a / b; // 注意处理除数为零的情况
}
```
用户可以在程序运行时根据需要选择哪种类型的计算器:
```csharp
public static void Main()
{
Calculator calculator = new IntCalculator(); // 使用整数计算器
Console.WriteLine("Enter two integers for addition:");
double num1 = Convert.ToDouble(Console.ReadLine());
double num2 = Convert.ToDouble(Console.ReadLine());
double result = calculator.Add(num1, num2);
Console.WriteLine($"Addition: {result}");
// 用户可以选择切换到浮点数计算器
calculator = new FloatCalculator();
Console.WriteLine("Enter two floating-point numbers for multiplication:");
num1 = Convert.ToDouble(Console.ReadLine());
num2 = Convert.ToDouble(Console.ReadLine());
result = calculator.Multiply(num1, num2);
Console.WriteLine($"Multiplication: {result}");
}
```
阅读全文