C#创建3个类:Person类、Adult类和Baby类。 要求:(1) Person类中有属性:姓名、年龄;有方法:Eat(),该方法为虚方法(virtual),其功能为输出“我正在吃...”,方法Speak(),该方法输出相应的姓名和年龄; (2)Adult类、Baby类是Person类的派生类,在Adult类中重写Eat()方法,其功能为输出“我正在吃饭”,在Baby类中重写Eat()方法,其功能为输出“我正在喝奶”; (4)在主类的Main方法中创建Adult与Baby类的对象类测试这2个类的功能(使用Person类引用Adult对象,Baby对象,来分别调用Eat()、Speak()方法,再分别使用Adult对象,Baby对象调用Eat()和Speak()方法)。
时间: 2024-03-18 12:41:35 浏览: 97
下面是C#创建的3个类:Person类、Adult类和Baby类的代码:
```csharp
using System;
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
public virtual void Eat()
{
Console.WriteLine("我正在吃...");
}
public void Speak()
{
Console.WriteLine("我的名字是{0},我今年{1}岁。", Name, Age);
}
}
public class Adult : Person
{
public override void Eat()
{
Console.WriteLine("我正在吃饭");
}
}
public class Baby : Person
{
public override void Eat()
{
Console.WriteLine("我正在喝奶");
}
}
class Program
{
static void Main(string[] args)
{
Adult adult = new Adult();
adult.Name = "张三";
adult.Age = 30;
adult.Eat();
adult.Speak();
Baby baby = new Baby();
baby.Name = "李四";
baby.Age = 1;
baby.Eat();
baby.Speak();
Person person = adult;
person.Eat();
person.Speak();
person = baby;
person.Eat();
person.Speak();
Console.ReadKey();
}
}
```
在上面的代码中,我们定义了`Person`类,其中包含了姓名和年龄两个属性,以及`Eat()`和`Speak()`两个方法。`Eat()`方法是虚方法,也就是说它可以被子类重写。在`Adult`类和`Baby`类中,分别重写了`Eat()`方法,实现了吃饭和喝奶的功能。
在`Main()`方法中,我们创建了`Adult`和`Baby`类的对象,并分别调用了它们的`Eat()`和`Speak()`方法。同时,我们也用`Person`类的引用`person`分别调用了`Adult`和`Baby`对象的`Eat()`和`Speak()`方法,这就展示了多态的特性。
阅读全文