c#实现一个关于水果类继承的例子。先创建一个基础类的水果类(Fruit),然后从它继承出几种具体的水果类(包括APPle苹果类和Banana香蕉类),最后通过一个Test测试类,实现关于类继承的测试。
时间: 2024-10-19 14:09:34 浏览: 20
Java设计一个银行帐户类(继承与多态)
5星 · 资源好评率100%
在C#中,你可以按照以下步骤创建一个关于水果的继承示例:
首先,我们定义一个名为`Fruit`的基础类,包含一些通用属性和方法:
```csharp
public class Fruit
{
public string Name { get; set; }
public int Weight { get; set; }
// 构造函数
public Fruit(string name)
{
Name = name;
}
// 普通方法,如描述水果
public virtual void Describe()
{
Console.WriteLine($"This is a generic fruit called {Name} and weighs {Weight} grams.");
}
}
```
接着,我们创建两个具体的水果类,分别继承自`Fruit`,比如`Apple`和`Banana`:
```csharp
public class Apple : Fruit
{
public Apple(int weight) : base("Apple")
{
Weight = weight;
}
// 重写Describe方法以提供更具体的描述
public override void Describe()
{
Console.WriteLine($"It's an apple with {Weight} grams and it tastes sweet.");
}
}
public class Banana : Fruit
{
public Banana(int weight) : base("Banana")
{
Weight = weight;
}
// 重写Describe方法以提供更具体的描述
public override void Describe()
{
Console.WriteLine($"This is a banana with {Weight} grams, yellow in color.");
}
}
```
最后,在`Test`类中,我们可以展示如何使用这些继承的类:
```csharp
public class Test
{
public static void Main()
{
// 创建苹果实例并调用其描述方法
var apple = new Apple(150);
apple.Describe();
// 创建香蕉实例并调用描述方法
var banana = new Banana(100);
banana.Describe();
// 虽然apple是Fruit类型的引用,但我们能直接调用其banana的方法,这就是多态
((Fruit)apple).Describe(); // 输出:This is a generic fruit called Apple and weighs 150 grams.
}
}
```
在这个例子中,`Test`类展示了多态的概念,即虽然变量`apple`声明为`Fruit`类型,但在运行时可以根据它的实际类型(这里是`Apple`)调用不同的`Describe`方法。
阅读全文