c#设计两个有继承关系的person,student
好的,以下是一个简单的示例代码:
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
public string Gender { get; set; }
public string Occupation { get; set; }
}
public class Student : Person
{
public string School { get; set; }
public int Grade { get; set; }
public string Major { get; set; }
}
上面的代码定义了一个 Person
类和一个继承自 Person
的 Student
类。Person
类包含了一些基本属性,如姓名、年龄、性别和职业。Student
类从 Person
类继承了这些基本属性,并添加了一些与学生相关的属性,如学校、年级和专业。
通过这个继承关系,我们可以在不重复编写代码的情况下,对 Student
类进行扩展,使其具有 Person
类的所有属性和方法。这在实际开发中是非常常见的,因为很多情况下,子类都是在基类的基础上进行扩展的。
c#定义一个Student类,继承Person类,定义name 属性,重写Student的构造方法,在该构造方法中 输出this.name、base.name、name三个变量的值,比较三个值的区别。 在Main方法中创建Student对象,观察输出的结果。
在 C# 中,我们可以定义一个 Student
类,它继承自 Person
类,主要是为了复用 Person
类的特性,并添加特定于学生的信息。首先,我们需要定义 Person
类有一个 name
属性:
public class Person {
public string name; // 定义 name 属性
public Person(string name) {
this.name = name;
Console.WriteLine($"基础类的初始化: {this.name}");
}
}
接着,我们重写 Student
类的构造方法,这里会输出 this.name
(当前类实例的 name
),base.name
(父类 Person
的 name
,即 this.name
因为继承), 和 name
参数值:
public class Student : Person {
public string name;
public Student(string name)
: base(name) {
this.name = name;
Console.WriteLine($"子类的初始化: {this.name}");
Console.WriteLine($"注意:this.name 和 base.name 在构造函数中实际上是相同的,因为这里是直接赋值给父类的 name 属性。");
}
}
在 Main
方法中,我们创建 Student
对象并观察输出:
```csharp static void Main(string[] args) { Student student = new Student("张三"); Console.WriteLine($"最终显示: {student.name}"); Console.WriteLine($"整个程序运行结果将会看到三次 '张三',因为构造方法中已经输出了两次");
用C#编写一个控制台程序,在该程序中构造一个Person基本类,再分别构造Student和Teacher派生类,要求具有不同的特征和行为。
在C#中,你可以创建一个名为Person
的基础类,然后定义两个派生类Student
和Teacher
,它们从Person
类继承并添加各自的特性和行为。这里是一个简单的例子:
// 定义基础类 Person
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
// 基础类的行为
public void Introduce()
{
Console.WriteLine($"你好,我是{Name},今年{Age}岁。");
}
}
// 派生类 Student
public class Student : Person
{
public string Major { get; set; }
// 学生特有的行为
public void Study()
{
Console.WriteLine($"我正在学习{Major}专业。");
}
}
// 派生类 Teacher
public class Teacher : Person
{
public string Subject { get; set; }
// 教师特有的行为
public void Teach()
{
Console.WriteLine($"我在教{Subject}课程。");
}
}
// 主函数,实例化对象并演示多态
static void Main(string[] args)
{
Person person = new Person() { Name = "张三", Age = 25 };
person.Introduce();
Student student = new Student() { Name = "小明", Age = 18, Major = "计算机科学" };
student.Introduce();
student.Study();
Teacher teacher = new Teacher() { Name = "李老师", Age = 30, Subject = "数学" };
teacher.Introduce();
teacher.Teach();
// 显示多态性,通过父类型引用调用派生类方法
person = student; // 这里显示的是学生的信息和行为
person.Study(); // 调用的是Student的Study方法
person = teacher;
person.Teach(); // 调用的是Teacher的Teach方法
}
在这个示例中,我们展示了如何利用继承实现多态,并通过不同类型的对象共享相同的父类引用来动态地改变对象的行为。
相关推荐















