用C#定义一个人员类CPerson,包括数据成员:姓名、编号、性别和用于输入/输出的成员函数。在此基础上派生出学生类Cstudent(增加成绩)和教师类CTeacher(增加教龄),并实现对学生和教师信息的输入/输出。 (请大家在派生类中使用base关键字)
时间: 2024-10-21 16:08:37 浏览: 36
设计一个人类person,包括人员编号和姓名等数据成员以及相关的成员函数
在C#中,我们可以定义一个名为`CPerson`的基本人员类,然后通过继承创建两个派生类`CStudent`和`CTeacher`。以下是相关的代码示例:
```csharp
// 定义基本人员类 CPerson
public class CPerson
{
// 数据成员
public string Name { get; set; }
public int ID { get; set; }
public char Gender { get; set; }
// 构造函数
public CPerson(string name, int id, char gender)
{
Name = name;
ID = id;
Gender = gender;
}
// 输入/输出成员函数 - 打印基本信息
public void Display()
{
Console.WriteLine($"Name: {Name}, ID: {ID}, Gender: {Gender}");
}
}
// 派生学生类 CStudent
public class CStudent : CPerson
{
// 新增数据成员 - 成绩
public float Grade { get; set; }
// 构造函数,使用base关键字初始化基础信息
public CStudent(string name, int id, char gender) : base(name, id, gender)
{
}
// 输入/输出成员函数 - 显示学生信息,包含成绩
public override void Display()
{
base.Display();
Console.WriteLine("Grade: " + Grade);
}
}
// 派生教师类 CTeacher
public class CTeacher : CPerson
{
// 新增数据成员 - 教龄
public int YearsOfTeaching { get; set; }
// 构造函数,使用base关键字初始化基础信息
public CTeacher(string name, int id, char gender) : base(name, id, gender)
{
}
// 输入/输出成员函数 - 显示教师信息,包含教龄
public override void Display()
{
base.Display();
Console.WriteLine("Years of Teaching: " + YearsOfTeaching);
}
}
```
现在你可以实例化`CStudent`或`CTeacher`对象,并使用`Display`方法来输入/输出他们的信息。例如:
```csharp
CStudent student = new CStudent("张三", 1001, 'M');
student.Grade = 95.0f;
student.Display();
CTeacher teacher = new CTeacher("李四", 2001, 'F');
teacher.YearsOfTeaching = 10;
teacher.Display();
```
阅读全文