课程内容提交

This commit is contained in:
MYP
2020-09-08 09:47:30 +08:00
parent bd25f30310
commit f7617cdfec
5 changed files with 870 additions and 0 deletions

View File

@@ -0,0 +1,870 @@
# 03 C#<23><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> I
**֪ʶ<D6AA><EFBFBD><E1B9B9>**
![ͼ1 ֪ʶ<D6AA>](https://img-blog.csdnimg.cn/20200908093951579.png)
---
## 1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
- <20><EFBFBD>ø߼<C3B8><DFBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD>ֵ<EFBFBD>һ<EFBFBD><D2BB>ADT<44><54><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD><C4B1><EFBFBD><EFBFBD><EFBFBD>
---
## 2<><32><EFBFBD><EFBFBD>װ
**2.1 ʲô<CAB2>Ƿ<EFBFBD>װ**
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Է<EFBFBD>ֹ<EFBFBD>ⲿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD>ֹ<EFBFBD><EFBFBD>̡<EFBFBD>
**2.2 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>װ**
- ͨ<><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>η<EFBFBD>`private`<EFBFBD><EFBFBD>`protected`<EFBFBD><EFBFBD>`public`<EFBFBD><EFBFBD>`internal`<EFBFBD><EFBFBD>ʵ<EFBFBD>֡<EFBFBD>
- <20><><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD>ݣ<EFBFBD>Data<74><61><EFBFBD>Ͳ<EFBFBD><CDB2><EFBFBD><EFBFBD><EFBFBD>Operation<6F><6E><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>η<EFBFBD><CEB7><EFBFBD>
- `private`<EFBFBD><EFBFBD>ֻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʣ<EFBFBD>Ĭ<EFBFBD>ϣ<EFBFBD><EFBFBD><EFBFBD>
- `protected`<EFBFBD><EFBFBD>ֻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʡ<EFBFBD>
- `public`<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ⲿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Է<EFBFBD><EFBFBD>ʡ<EFBFBD>
- `internal`<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬһ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>`public`<EFBFBD><EFBFBD>
- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>η<EFBFBD><CEB7><EFBFBD>
- `public`<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD>á<EFBFBD>
- `internal`<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬһ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD>ʹ<EFBFBD>ã<EFBFBD>Ĭ<EFBFBD>ϣ<EFBFBD><EFBFBD><EFBFBD>
ע<EFBFBD><EFBFBD>`internal`<EFBFBD><EFBFBD><EFBFBD>ε<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԣ<EFBFBD>ֻҪ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬһ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Է<EFBFBD><EFBFBD>ʣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߲<EFBFBD><EFBFBD><EFBFBD>ͬһ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ռ䣬ֻҪʹ<EFBFBD><EFBFBD>`using`<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ռ<EFBFBD>ɣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҳ<EFBFBD><EFBFBD><EFBFBD>ӿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ռ<EFBFBD><EFBFBD><EFBFBD>ǽ綨<EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>DZ<EFBFBD>֤ȫ<EFBFBD>ֵ<EFBFBD><EFBFBD><EFBFBD>Ψһ<EFBFBD>Եġ<EFBFBD>
<EFBFBD>ο<EFBFBD>ͼ<EFBFBD>ģ<EFBFBD>
- [<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼ<EFBFBD>ģ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>C#<23><>internal<61>޶<EFBFBD><DEB6><EFBFBD><EFBFBD>η<EFBFBD><CEB7><EFBFBD>](https://mp.weixin.qq.com/s?__biz=MzIyNDA1NjA1NQ==&mid=2651012035&idx=1&sn=442e2b1e601082b6553ffa06e52c0ae4&chksm=f3e35c5bc494d54d43d9b78947f8e9995208e6404dcd1c92625f780338924261936d227f132d&token=1238973891&lang=zh_CN#rd)
**2.3 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ**
- <20><>ͼ<EFBFBD><CDBC>Class Diagram<61><6D>
- -<2D><>`private`
- +<2B><>`public`
- #<23><>`protected`
![ͼ2 Class Diagram](https://img-blog.csdnimg.cn/2020090718494457.png)
<EFBFBD><EFBFBD>1<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼʵ<EFBFBD><EFBFBD>Animal<EFBFBD><EFBFBD><EFBFBD>͡<EFBFBD>
![ͼ3 Class Diagram](https://img-blog.csdnimg.cn/20200907185820336.png)
```c
public class Animal
{
public int Age;
public double Weight;
public void Eat()
{
Console.WriteLine("Animal Eat.");
}
public void Sleep()
{
Console.WriteLine("Animal Sleep.");
}
}
class Program
{
static void Main(string[] args)
{
Animal al = new Animal();
al.Eat();// Animal Eat.
al.Sleep();// Animal Sleep.
}
}
```
---
## 3<><33><EFBFBD>̳<EFBFBD>
**3.1 ʲô<CAB2>Ǽ̳<C7BC>**
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӵ<EFBFBD>и<EFBFBD><EFBFBD><EFBFBD>ijЩData<EFBFBD><EFBFBD>Operation<EFBFBD>Ĺ<EFBFBD><EFBFBD>̡<EFBFBD>
**3.2 <20><><EFBFBD><EFBFBD><EFBFBD>̳<EFBFBD>**
```c
public class Child : Parent
{
//<2F><>
}
````
- `Child`<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>`Parent`<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
- <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD><EFBFBD><EFBFBD><EFBFBD>á<EFBFBD>:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD>̳С<EFBFBD>
C# ֻ֧<EFBFBD>ֵ<EFBFBD><EFBFBD>̳У<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̳е<EFBFBD><EFBFBD>
```
public sealed class Name
{
//...
}
```
- <20><><EFBFBD><EFBFBD>`sealed`<60>ؼ<EFBFBD><D8BC>ֿɷ<D6BF>ֹ<EFBFBD><D6B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̳С<CCB3>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ̳й<EFBFBD>ϵ<EFBFBD><EFBFBD>
- <20><><EFBFBD><EFBFBD> `public` `protected` `private` `internal`
- <20><><EFBFBD><EFBFBD> `public` `protected` <20>޷<EFBFBD><DEB7>̳<EFBFBD> `internal`
**3.3 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʸ<EFBFBD><CAB8><EFBFBD><EFBFBD><EFBFBD>Ա**
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>`base`<60>ؼ<EFBFBD><D8BC>֡<EFBFBD>
<EFBFBD><EFBFBD>2<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʸ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
```c
public class Parent
{
private int _data1; // ֻ<>ܱ<EFBFBD><DCB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD><EFBFBD>
protected int Data2; // <20>ܱ<EFBFBD><DCB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʺͼ̳<CDBC>
public int Data3; // <20>ܱ<EFBFBD><DCB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʺͼ̳<CDBC>
}
public class Child : Parent
{
public Child()
{
base.Data2 = 2;
base.Data3 = 3;
}
}
class Program
{
static void Main(string[] args)
{
Child cld = new Child();
Console.WriteLine(cld.Data3); // 3
}
}
```
<EFBFBD><EFBFBD>3<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʸ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
```c
public class Parent
{
private int _data1; // ֻ<>ܱ<EFBFBD><DCB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD><EFBFBD>
protected int Data2; // <20>ܱ<EFBFBD><DCB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʺͼ̳<CDBC>
public int Data3; // <20>ܱ<EFBFBD><DCB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʺͼ̳<CDBC>
public Parent(int dt1, int dt2, int dt3)
{
_data1 = dt1;
Data2 = dt2;
Data3 = dt3;
}
}
public class Child : Parent
{
public Child() : base(0, 2, 3)
{
;
}
}
class Program
{
static void Main(string[] args)
{
Child cld = new Child();
Console.WriteLine(cld.Data3);// 3
}
}
```
**3.4 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ**
- ͨ<><CDA8><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD>ʾ
![ͼ4 <20>̳й<CCB3>ϵ](https://img-blog.csdnimg.cn/2020090718590952.png)
<EFBFBD><EFBFBD>4<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼʵ<EFBFBD>ֳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>룬ע<EFBFBD><EFBFBD><EFBFBD><EFBFBD>֮<EFBFBD><EFBFBD><EFBFBD>ļ̳й<EFBFBD>ϵ<EFBFBD><EFBFBD>
![ͼ5 Class Diagram](https://img-blog.csdnimg.cn/20200907185946630.png)
```c
public class Animal
{
public int Age;
public double Weight;
public void Eat()
{
Console.WriteLine("Animal Eat.");
}
public void Sleep()
{
Console.WriteLine("Animal Sleep.");
}
}
public class Bird : Animal
{
public void Fly()
{
Console.WriteLine("Bird Fly.");
}
}
public class Dog : Animal
{
public void Run()
{
Console.WriteLine("Dog Run.");
}
}
public class Fish : Animal
{
public void Swim()
{
Console.WriteLine("Fish Swim.");
}
}
class Program
{
static void Main(string[] args)
{
Dog dog = new Dog();
dog.Run(); //Dog Run.
Bird bird = new Bird();
bird.Fly(); //Bird Fly.
Fish fish = new Fish();
fish.Swim(); //Fish Swim.
}
}
```
**3.5 ʵ<><CAB5><EFBFBD><EFBFBD>**
Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ռ<EFBFBD><EFBFBD>Ĺ<EFBFBD><EFBFBD>̡<EFBFBD>
<EFBFBD><EFBFBD>5<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
```c
public class Animal
{
public int Age;
public double Weight;
public void Eat()
{
Console.WriteLine("Animal Eat.");
}
public void Sleep()
{
Console.WriteLine("Animal Sleep.");
}
}
public class Dog : Animal
{
public void Run()
{
Console.WriteLine("Dog Run.");
}
}
class Program
{
static void Main(string[] args)
{
Animal al = new Animal(); // ʵ<><CAB5><EFBFBD><EFBFBD>Animal
al.Eat(); // Animal Eat.
al.Sleep(); // Animal Sleep.
Dog dg = new Dog(); // ʵ<><CAB5><EFBFBD><EFBFBD>Dog
dg.Age = 2;
dg.Weight = 4.5;
Console.WriteLine("Dog Infor: Age:{0},Weight:{1}",
dg.Age, dg.Weight);
// Dog Infor: Age:2, Weight:4.5
dg.Sleep(); // Animal Sleep.
dg.Eat(); // Animal Eat.
dg.Run(); // Dog Run.
}
}
```
<EFBFBD><EFBFBD>6<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
![ͼ6 Class Diagram](https://img-blog.csdnimg.cn/20200907190525103.png)
```c
public class Animal
{
public int Age;
public double Weight;
public void Eat()
{
Console.WriteLine("Animal Eat.");
}
public void Sleep()
{
Console.WriteLine("Animal Sleep.");
}
}
public class Dog : Animal
{
public void Eat()
{
Console.WriteLine("Dog Eat.");
}
public void Sleep()
{
Console.WriteLine("Dog Sleep.");
}
public void Run()
{
Console.WriteLine("Dog Run.");
}
}
class Program
{
static void Main(string[] args)
{
Animal al = new Dog(); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD><CAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
al.Eat(); // Animal Eat.<2E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
al.Sleep(); // Animal Sleep.
Dog dg = al as Dog; //ǿ<><C7BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>Dog dg = (Dog)al;
dg.Eat(); // Dog Eat.
dg.Sleep(); // Dog Sleep.
dg.Run(); // Dog Run.
}
}
```
ע<EFBFBD>
- `Animal al = new Dog();`<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȷ<EFBFBD><EFBFBD>
- `Dog dg = new Animal();`<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>`Dog`һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>`Animal`<EFBFBD><EFBFBD><EFBFBD><EFBFBD>`Animal`<EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>`Dog`<EFBFBD><EFBFBD>
- `Animal al = new Dog();`
- `Dog dg = al;`<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫǿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
- `Dog dg = al as Dog;` <20><><EFBFBD><EFBFBD>ȷ<EFBFBD><C8B7><EFBFBD><EFBFBD>`al`<EFBFBD><EFBFBD><EFBFBD><EFBFBD>`Dog`<EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>null<EFBFBD><EFBFBD>
- `Dog dg = (Dog)al;` <20><><EFBFBD><EFBFBD>ȷ<EFBFBD><C8B7><EFBFBD><EFBFBD>`al`<EFBFBD><EFBFBD><EFBFBD><EFBFBD>`Dog`<EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD>ϵͳ<EFBFBD><EFBFBD><EFBFBD>׳<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
---
## 4<><34><EFBFBD><EFBFBD>̬
**4.1 ʲô<CAB2>Ƕ<EFBFBD>̬**
<EFBFBD><EFBFBD>ͬ<EFBFBD>IJ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Operation<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD>ͬ<EFBFBD>Ķ<EFBFBD><EFBFBD>󣬿<EFBFBD><EFBFBD><EFBFBD><EFBFBD>в<EFBFBD>ͬ<EFBFBD>Ľ<EFBFBD><EFBFBD>ͣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬ<EFBFBD><EFBFBD>ִ<EFBFBD>н<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
**4.2 <20><>̬<EFBFBD>ķ<EFBFBD><C4B7><EFBFBD>**
- <20><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>̬<EFBFBD><CCAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ִ<EFBFBD><D6B4><EFBFBD>ĸ<EFBFBD><C4B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĸ<EFBFBD><C4B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>override<64><65>д<EFBFBD><D0B4>
- <20><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>̬<EFBFBD><CCAC><EFBFBD>ڱ<EFBFBD><DAB1><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ִ<EFBFBD><D6B4><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><D0B5>ĸ<EFBFBD><C4B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>overload<61><64><EFBFBD>أ<EFBFBD>
**4.3 <20><>̬<EFBFBD><CCAC>ʵ<EFBFBD><CAB5>**
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>̬<EFBFBD><EFBFBD>
- <20>ڸ<EFBFBD><DAB8><EFBFBD><EFBFBD>ж<EFBFBD><D0B6>岢ʵ<E5B2A2><CAB5><EFBFBD><EFBFBD><E9B7BD><EFBFBD><EFBFBD>virtual<61><6C>
- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>и<EFBFBD>д<EFBFBD><D0B4>override<64><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E9B7BD><EFBFBD><EFBFBD>
- <20><EFBFBD><E9B7BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>з<EFBFBD><D0B7><EFBFBD><EFBFBD><EFBFBD>
- <20><>д<EFBFBD><EFBFBD><E9B7BD><EFBFBD><EFBFBD>Ҫ<EFBFBD>󷽷<EFBFBD><F3B7BDB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>βΣ<CEB2><CEA3><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD>ͱ<EFBFBD><CDB1><EFBFBD><EFBFBD><EFBFBD>ͬ<EFBFBD><CDAC>
<EFBFBD><EFBFBD>7<EFBFBD><EFBFBD>ʵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>̬<EFBFBD>Ĵ<EFBFBD><EFBFBD><EFBFBD>
![ͼ7 Class Diagram](https://img-blog.csdnimg.cn/20200907192621578.png)
```c
public class Animal
{
public int Age;
public double Weight;
public virtual void Eat()
{
Console.WriteLine("Animal Eat.");
}
public virtual void Sleep()
{
Console.WriteLine("Animal Sleep.");
}
}
public class Dog : Animal
{
public override void Eat()
{
Console.WriteLine("Dog Eat.");
}
public override void Sleep()
{
Console.WriteLine("Dog Sleep.");
}
public virtual void Run()
{
Console.WriteLine("Dog Run.");
}
}
class Program
{
static void Main(string[] args)
{
Animal al = new Dog();
//<2F><>ִ<EFBFBD><D6B4>ʱ<EFBFBD><CAB1>ͨ<EFBFBD><CDA8><EFBFBD>ж<EFBFBD>al<61><6C><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD><D6B4><EFBFBD>ĸ<EFBFBD><C4B8><EFBFBD><EFBFBD>е<EFBFBD><D0B5>ĸ<EFBFBD><C4B8><EFBFBD><EFBFBD><EFBFBD>;
al.Eat(); // Dog Eat.
al.Sleep(); // Dog Sleep.
}
}
```
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>̬<EFBFBD><EFBFBD>
- <20><><EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD>ķ<EFBFBD><C4B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>в<EFBFBD>ͬ<EFBFBD>İ汾<C4B0><E6B1BE>
- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>أ<EFBFBD>`operator`<EFBFBD>ؼ<EFBFBD><EFBFBD><EFBFBD>
- public static <20><><EFBFBD><EFBFBD> operator <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28>β<EFBFBD><CEB2>б<EFBFBD>){ <20><> }
- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>أ<EFBFBD><D8A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬ<EFBFBD>ķ<EFBFBD><C4B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>в<EFBFBD>ͬ<EFBFBD>IJ<EFBFBD><C4B2><EFBFBD><EFBFBD>б<EFBFBD><D0B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬ<EFBFBD>ķ<EFBFBD><C4B7><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD>8<EFBFBD><EFBFBD>ͨ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼʵ<EFBFBD>ֱ<EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>̬<EFBFBD>Ĵ<EFBFBD><EFBFBD><EFBFBD>
![ͼ8 Class Diagram](https://img-blog.csdnimg.cn/2020090808531193.png)
```c
public class Complex
{
public int A;
public int B;
public Complex(int a, int b)
{
this.A = a; //this<69><73>ʾ<EFBFBD><CABE><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD>Complex<65><78><EFBFBD><EFBFBD>
this.B = b;
}
public static Complex operator +(Complex c1, Complex c2)
{
return new Complex(c1.A + c2.A, c1.B + c2.B);
}
public override string ToString()
{
return string.Format("{0}+{1}i", A, B);
}
}
public class Math
{
public int Add(int x, int y)
{
return x + y;
}
public double Add(double x, double y)
{
return x + y;
}
public Complex Add(Complex x, Complex y)
{
return x + y;
}
}
class Program
{
static void Main(string[] args)
{
Complex c1 = new Complex(1, 2);
Complex c2 = new Complex(3, 4);
Complex c3 = c1 + c2;
Console.WriteLine("C1={0}", c1); // C1=1+2i
Console.WriteLine("C2={0}", c2); // C2=3+4i
Console.WriteLine("C3={0}", c3); // C3=4+6i
Math mth = new Math();
Complex c4 = mth.Add(c2, c3);
//<2F>ڱ<EFBFBD><DAB1><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>ݲ<EFBFBD><DDB2><EFBFBD><EFBFBD>б<EFBFBD><D0B1><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD><D6B4><EFBFBD>ĸ<EFBFBD><C4B8><EFBFBD><EFBFBD>е<EFBFBD><D0B5>ĸ<EFBFBD><C4B8><EFBFBD><EFBFBD><EFBFBD>;
Console.WriteLine("C4={0}", c4); // C4=7+10i
}
}
```
<EFBFBD>ܽ᣺`override`<EFBFBD><EFBFBD>`overload`
![](https://img-blog.csdnimg.cn/2020090809435588.png)
**4.4 <20><><EFBFBD>󷽷<EFBFBD><F3B7BDB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>**
- <20><><EFBFBD>󷽷<EFBFBD><F3B7BDB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Կ<EFBFBD><D4BF><EFBFBD>û<EFBFBD><C3BB>ʵ<EFBFBD><CAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E9B7BD><EFBFBD><EFBFBD>`abstract`<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֻ<EFBFBD>з<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>и<EFBFBD>д<EFBFBD><EFBFBD>`override`<EFBFBD><EFBFBD><EFBFBD>÷<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E0A3BA><EFBFBD>г<EFBFBD><D0B3>󷽷<EFBFBD><F3B7BDB7><EFBFBD><EFBFBD><EFBFBD><E0A1A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E0B2BB><EFBFBD><EFBFBD>ֱ<EFBFBD><D6B1>ʵ<EFBFBD><CAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD>9<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼʵ<EFBFBD>ִ<EFBFBD><EFBFBD><EFBFBD>
![ͼ9 Class Diagram](https://img-blog.csdnimg.cn/2020090809021457.png)
```c
public abstract class Animal
{
public int Age;
public double Weight;
public abstract void Eat();
public abstract void Sleep();
}
public class Dog : Animal
{
public override void Eat()
{
Console.WriteLine("Dog Eat.");
}
public override void Sleep()
{
Console.WriteLine("Dog Sleep.");
}
public void Run()
{
Console.WriteLine("Dog Run.");
}
}
class Program
{
static void Main(string[] args)
{
Animal al = new Dog();
al.Eat(); // Dog Eat.
al.Sleep(); // Dog Sleep.
((Dog)al).Run(); // Dog Run.
}
}
```
ע<EFBFBD>
- `al.Run();`<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
- `((Dog)al).Run();`<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȷ<EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>в<EFBFBD>û<EFBFBD><EFBFBD>Run<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫǿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
- `Animal al = new Animal ();`<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD><EFBFBD>ʵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵͳ<EFBFBD><EFBFBD><EFBFBD>׳<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD>ܽ᣺<EFBFBD><EFBFBD><EFBFBD>󷽷<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>![](https://img-blog.csdnimg.cn/20200908094431953.png)
<EFBFBD><EFBFBD>10<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵͳ
ij<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD><EFBFBD>Raiser<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀǰ״̬<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Dog<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Bird<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>㣨Fish<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD><EFBFBD><EFBFBD>ֻ<EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>˯<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Sleep<EFBFBD><EFBFBD><EFBFBD>ͳԷ<EFBFBD><EFBFBD><EFBFBD>Eat<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɡ<EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵͳ<EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶġ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԭ<EFBFBD>򡱡<EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD>
![ͼ10 Class Diagram](https://img-blog.csdnimg.cn/20200908091105732.png)
```c++
public class Bird
{
public void Eat()
{
Console.WriteLine("Bird Eat.");
}
public void Sleep()
{
Console.WriteLine("Bird Sleep.");
}
public void Fly()
{
Console.WriteLine("Bird Fly.");
}
}
public class Dog
{
public void Eat()
{
Console.WriteLine("Dog Eat.");
}
public void Sleep()
{
Console.WriteLine("Dog Sleep.");
}
public void Run()
{
Console.WriteLine("Dog Run.");
}
}
public class Fish
{
public void Eat()
{
Console.WriteLine("Fish Eat.");
}
public void Sleep()
{
Console.WriteLine("Fish Sleep.");
}
public void Swim()
{
Console.WriteLine("Fish Swim.");
}
}
public class Raiser
{
public void RaiseDog()
{
Dog dog = new Dog();
dog.Eat();
dog.Sleep();
}
public void RaisBird()
{
Bird bird = new Bird();
bird.Eat();
bird.Sleep();
}
public void RaisFish()
{
Fish fish = new Fish();
fish.Eat();
fish.Sleep();
}
}
class Program
{
static void Main(string[] args)
{
Raiser rar = new Raiser();
rar.RaiseDog();
// Dog Eat.
// Dog Sleep.
rar.RaisBird();
// Bird Eat.
// Bird Sleep.
rar.RaisFish();
// Fish Eat.
// Fish Sleep.
}
}
```
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
![ͼ11 Class Diagram](https://img-blog.csdnimg.cn/20200908092632785.png)
```c
public class Bird
{
public void Eat()
{
Console.WriteLine("Bird Eat.");
}
public void Sleep()
{
Console.WriteLine("Bird Sleep.");
}
public void Fly()
{
Console.WriteLine("Bird Fly.");
}
}
public class Dog
{
public void Eat()
{
Console.WriteLine("Dog Eat.");
}
public void Sleep()
{
Console.WriteLine("Dog Sleep.");
}
public void Run()
{
Console.WriteLine("Dog Run.");
}
}
public class Fish
{
public void Eat()
{
Console.WriteLine("Fish Eat.");
}
public void Sleep()
{
Console.WriteLine("Fish Sleep.");
}
public void Swim()
{
Console.WriteLine("Fish Swim.");
}
}
public enum AnimalType
{
Dog,
Bird,
Fish
};
public class Raiser
{
public void Raise(AnimalType alt)
{
switch (alt)
{
case AnimalType.Bird:
Bird bird = new Bird();
bird.Eat();
bird.Sleep();
break;
case AnimalType.Dog:
Dog dog = new Dog();
dog.Eat();
dog.Sleep();
break;
case AnimalType.Fish:
Fish fish = new Fish();
fish.Eat();
fish.Sleep();
break;
}
}
}
class Program
{
static void Main(string[] args)
{
Raiser rar = new Raiser();
rar.Raise(AnimalType.Dog);
// Dog Eat.
// Dog Sleep.
rar.Raise(AnimalType.Bird);
// Bird Eat.
// Bird Sleep.
rar.Raise(AnimalType.Fish);
// Fish Eat.
// Fish Sleep.
}
}
```
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
![ͼ12 Class Diagram](https://img-blog.csdnimg.cn/20200908093122441.png)
```c
public abstract class Animal
{
public int Age;
public double Weight;
public abstract void Eat();
public abstract void Sleep();
}
public class Bird : Animal
{
public override void Eat()
{
Console.WriteLine("Bird Eat.");
}
public override void Sleep()
{
Console.WriteLine("Bird Sleep.");
}
public void Fly()
{
Console.WriteLine("Bird Fly.");
}
}
public class Dog : Animal
{
public override void Eat()
{
Console.WriteLine("Dog Eat.");
}
public override void Sleep()
{
Console.WriteLine("Dog Sleep.");
}
public void Run()
{
Console.WriteLine("Dog Run.");
}
}
public class Fish : Animal
{
public override void Eat()
{
Console.WriteLine("Fish Eat.");
}
public override void Sleep()
{
Console.WriteLine("Fish Sleep.");
}
public void Swim()
{
Console.WriteLine("Fish Swim.");
}
}
public class Raiser
{
public void Raise(Animal al)
{
al.Eat();
al.Sleep();
}
}
class Program
{
static void Main(string[] args)
{
Raiser rsr = new Raiser();
rsr.Raise(new Dog());
// Dog Eat.
// Dog Sleep.
rsr.Raise(new Bird());
// Bird Eat.
// Bird Sleep.
rsr.Raise(new Fish());
// Fish Eat.
// Fish Sleep.
}
}
```