Person类中有属性:姓名、年龄;有方法:eat(),该方法输出“我正在吃饭”
时间: 2024-05-05 20:15:40 浏览: 34
以下是Python的代码实现:
```python
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def eat(self):
print("我正在吃饭")
# 实例化一个Person对象
person = Person("张三", 20)
# 调用eat()方法
person.eat()
```
输出结果:
```
我正在吃饭
```
相关问题
Person类中有属性:姓名、年龄;有方法:Eat(),该方法为虚方法(virtual),其功能为输出“我正在吃...”,方法Speak(),该方法输出相应的姓名和年龄; (2)Adult类、Baby类是Person类的派生类,在Adult类中重写Eat()方法,其功能为输出“我正在吃饭”,在Baby类中重写Eat()方法,其功能为输出“我正在喝奶”;
好的,以下是符合您要求代码实现:
```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("我正在喝奶");
}
}
```
在这个例子中,我们定义了一个基类 `Person`,并在其中定义了属性 `Name` 和 `Age`,以及虚方法 `Eat()` 和非虚方法 `Speak()`。然后,我们创建了两个派生类 `Adult` 和 `Baby`,并在其中分别重写了 `Eat()` 方法,以实现不同的输出。
(1) Person类中有属性:姓名、年龄;有方法:Eat(),该方法为虚方法(virtual),其功能为输出“我正在吃...”,方法Speak(),该方法输出相应的姓名和年龄; (2) Adult类、Baby类是Person类的派生类,在Adult类中重写Eat()方法,其功能为输出“我正在吃饭”,在Baby类中重写Eat()方法,其功能为输出“我正在喝奶”; (3) 在主类的Main方法中创建Adult与Baby类的对象类测试这2个类的功能(使用Person类引用Adult对象,Baby对象,来分别调用Eat()、Speak()方法,再分别使用Adult对象,Baby对象调用Eat()和Speak()方法)。
以下是可以实现上述要求的C#代码示例:
```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($"我叫{Name},今年{Age}岁。");
}
}
public class Adult : Person
{
public override void Eat()
{
Console.WriteLine("我正在吃饭。");
}
}
public class Baby : Person
{
public override void Eat()
{
Console.WriteLine("我正在喝奶。");
}
}
public class Program
{
static void Main(string[] args)
{
Person adult = new Adult();
adult.Name = "张三";
adult.Age = 30;
adult.Eat();
adult.Speak();
Person baby = new Baby();
baby.Name = "李四";
baby.Age = 1;
baby.Eat();
baby.Speak();
Adult adult2 = new Adult();
adult2.Name = "王五";
adult2.Age = 40;
adult2.Eat();
adult2.Speak();
Baby baby2 = new Baby();
baby2.Name = "赵六";
baby2.Age = 2;
baby2.Eat();
baby2.Speak();
Console.ReadLine();
}
}
```
在上述代码中,Person类定义了姓名和年龄属性,以及Eat()和Speak()方法。Adult类和Baby类分别继承自Person类,在Adult类中重写了Eat()方法,输出“我正在吃饭”,在Baby类中重写了Eat()方法,输出“我正在喝奶”。
在Main方法中,首先创建了一个Adult对象和一个Baby对象,并将它们都赋值给Person类型的变量。然后分别调用了它们的Eat()和Speak()方法。接着创建了一个Adult对象和一个Baby对象,并直接调用它们的Eat()和Speak()方法。
运行上述代码,输出结果为:
```
我正在吃饭。
我叫张三,今年30岁。
我正在喝奶。
我叫李四,今年1岁。
我正在吃饭。
我叫王五,今年40岁。
我正在喝奶。
我叫赵六,今年2岁。
```
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)