类、结构体与继承
类(class) 共享文档的链接 引用类型,赋值时传的是"地址",改一处全变
结构体(struct) 文件的复印件 值类型,赋值时复制一份全新的,互不影响
继承 家族遗传 儿子自动拥有爸爸的本领,还能自己学新招
——————————————————————————————————————————————————————————————————————————
案例 1:类是"共享链接"(引用类型)
csharp
class Person
{
public string Name = "";
}
Person a = new Person();
a.Name = "张三";
Person b = a; // b 拿到的是同一个地址
b.Name = "李四"; // 改的是同一个对象
Console.WriteLine(a.Name); // 输出:李四
b = a 不是复印,而是两个人共用一份文档。所以改了 b,a 也跟着变。
——————————————————————————————————————————————————————————————————————————
案例 2:结构体是"复印件"(值类型)
csharp
struct Point
{
public int X;
}
Point a = new Point();
a.X = 10;
Point b = a; // b 拿到的是全新复印件
b.X = 20; // 只改自己的那份
Console.WriteLine(a.X); // 输出:10
b = a 是复印了一份。b 怎么改,都不会影响 a 的原件。适合存坐标、颜色等简单数据。
——————————————————————————————————————————————————————————————————————————
案例 3:继承是"遗传本领"
csharp
class Animal
{
public void Eat() => Console.WriteLine("吃东西");
}
class Dog : Animal // Dog 继承了 Animal
{
public void Bark() => Console.WriteLine("汪汪");
}
Dog dog = new Dog();
dog.Eat(); // 从爸爸那继承来的本事
dog.Bark(); // 自己学的本事
Dog : Animal 表示"狗是一种动物"。狗天生会 Eat(继承),还会自己独有的 Bark。不用把 Eat 的代码再写一遍。

浙公网安备 33010602011771号