diff --git a/C#核心/C#核心.sln b/C#核心/C#核心.sln index af87270..4f6f708 100644 --- a/C#核心/C#核心.sln +++ b/C#核心/C#核心.sln @@ -15,6 +15,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lesson13_继承-李氏替 EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lesson12_继承-继承的基本概念练习", "Lesson12_继承-继承的基本概念练习\Lesson12_继承-继承的基本概念练习.csproj", "{B432065F-FFA2-4866-BC75-8AC33869B92F}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lesson12_继承-继承的基本概念", "Lesson12_继承-继承的基本概念\Lesson12_继承-继承的基本概念.csproj", "{45F37FBC-59A8-4FC9-B0F5-5CEA222D8C7E}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -45,6 +47,10 @@ Global {B432065F-FFA2-4866-BC75-8AC33869B92F}.Debug|Any CPU.Build.0 = Debug|Any CPU {B432065F-FFA2-4866-BC75-8AC33869B92F}.Release|Any CPU.ActiveCfg = Release|Any CPU {B432065F-FFA2-4866-BC75-8AC33869B92F}.Release|Any CPU.Build.0 = Release|Any CPU + {45F37FBC-59A8-4FC9-B0F5-5CEA222D8C7E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {45F37FBC-59A8-4FC9-B0F5-5CEA222D8C7E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {45F37FBC-59A8-4FC9-B0F5-5CEA222D8C7E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {45F37FBC-59A8-4FC9-B0F5-5CEA222D8C7E}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/C#核心/Lesson12_继承-继承的基本概念/Lesson12_继承-继承的基本概念.csproj b/C#核心/Lesson12_继承-继承的基本概念/Lesson12_继承-继承的基本概念.csproj new file mode 100644 index 0000000..2f50edc --- /dev/null +++ b/C#核心/Lesson12_继承-继承的基本概念/Lesson12_继承-继承的基本概念.csproj @@ -0,0 +1,11 @@ + + + + Exe + net8.0 + Lesson12_继承_继承的基本概念 + enable + enable + + + diff --git a/C#核心/Lesson12_继承-继承的基本概念/Program.cs b/C#核心/Lesson12_继承-继承的基本概念/Program.cs new file mode 100644 index 0000000..a9d0ec5 --- /dev/null +++ b/C#核心/Lesson12_继承-继承的基本概念/Program.cs @@ -0,0 +1,101 @@ +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 = "唐老师"; + ct.number = 2; + ct.subject = "语文"; + ct.SpeakName(); + ct.SpeakSubject(); + ct.Skill(); + } + } +}