Files
Csharp/C#核心/Lesson12_继承-继承的基本概念/Program.cs
T
2025-09-09 11:34:15 +08:00

102 lines
2.3 KiB
C#

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();
ct.name = "HK";
ct.number = 2;
ct.subject = "语文";
ct.SpeakName();
ct.SpeakSubject();
ct.Skill();
}
}
}