2025-09-08 16:11:55 +08:00
|
|
|
namespace Lesson12_继承_继承的基本概念
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
#region 知识点一 基本概念
|
|
|
|
|
// 一个类 A 继承一个类 B
|
|
|
|
|
// 类 A 将会继承类 B 的所有成员
|
|
|
|
|
//A 类将拥有 B 类的所有特征和行为
|
|
|
|
|
|
|
|
|
|
// 被继承的类
|
|
|
|
|
// 称为 父类、基类、超类
|
|
|
|
|
|
|
|
|
|
// 继承的类
|
|
|
|
|
// 称为子类、派生类
|
|
|
|
|
|
|
|
|
|
// 子类可以有自己的特征和行为
|
|
|
|
|
|
|
|
|
|
// 特点
|
|
|
|
|
//1. 单根性 子类只能有一个父类
|
|
|
|
|
//2. 传递性 子类可以间接继承父类的父类
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
#region 知识点二 基本语法
|
|
|
|
|
//class 类名:被继承的类名
|
|
|
|
|
//{
|
|
|
|
|
|
|
|
|
|
//}
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
#region 知识点三 实例
|
|
|
|
|
class Teacher
|
|
|
|
|
{
|
|
|
|
|
//姓名
|
|
|
|
|
public string name;
|
|
|
|
|
//职工号
|
|
|
|
|
public int number;
|
|
|
|
|
//介绍名字
|
|
|
|
|
public void SpeakName()
|
|
|
|
|
{
|
|
|
|
|
Console.WriteLine(name);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
class TeachingTeacher : Teacher
|
|
|
|
|
{
|
|
|
|
|
//科目
|
|
|
|
|
public string subject;
|
|
|
|
|
//介绍科目
|
|
|
|
|
public void SpeakSubject()
|
|
|
|
|
{
|
|
|
|
|
Console.WriteLine(subject + "老师");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
class ChineseTeacher : TeachingTeacher
|
|
|
|
|
{
|
|
|
|
|
public void Skill()
|
|
|
|
|
{
|
|
|
|
|
Console.WriteLine("一行白鹭上青天");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
#region 知识点四 访问修饰符的影响
|
|
|
|
|
//public - 公共 内外部访问
|
|
|
|
|
//private - 私有 内部访问
|
|
|
|
|
//protected - 保护 内部和子类访问
|
|
|
|
|
|
|
|
|
|
// 之后讲命名空间的时候讲
|
|
|
|
|
//internal - 内部的 只有在同一个程序集的文件中,内部类型或者是成员才可以访问
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
#region 知识点五 子类和父类的同名成员
|
|
|
|
|
// 概念
|
|
|
|
|
//C# 中允许子类存在和父类同名的成员
|
|
|
|
|
// 但是 极不建议使用
|
|
|
|
|
#endregion
|
|
|
|
|
internal class Program
|
|
|
|
|
{
|
|
|
|
|
static void Main(string[] args)
|
|
|
|
|
{
|
|
|
|
|
Console.WriteLine("Hello, World!");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
TeachingTeacher tt = new TeachingTeacher();
|
|
|
|
|
tt.name = "HK";
|
|
|
|
|
tt.number = 1;
|
|
|
|
|
tt.SpeakName();
|
|
|
|
|
|
|
|
|
|
tt.subject = "Unity";
|
|
|
|
|
tt.SpeakSubject();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ChineseTeacher ct = new ChineseTeacher();
|
2025-09-09 11:11:14 +08:00
|
|
|
ct.name = "HK";
|
2025-09-08 16:11:55 +08:00
|
|
|
ct.number = 2;
|
|
|
|
|
ct.subject = "语文";
|
|
|
|
|
ct.SpeakName();
|
|
|
|
|
ct.SpeakSubject();
|
|
|
|
|
ct.Skill();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|