课程内容提交
This commit is contained in:
870
DataStructureAndAlgorithm/03 C#面向对象设计 I.md
Normal file
870
DataStructureAndAlgorithm/03 C#面向对象设计 I.md
Normal file
@@ -0,0 +1,870 @@
|
||||
# 03 C#<23><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> I
|
||||
|
||||
|
||||
**֪ʶ<D6AA>ṹ<EFBFBD><E1B9B9>**
|
||||
|
||||

|
||||
|
||||
---
|
||||
## 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`
|
||||
|
||||

|
||||
|
||||
<EFBFBD><EFBFBD>1<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼʵ<EFBFBD><EFBFBD>Animal<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.");
|
||||
}
|
||||
}
|
||||
|
||||
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>ʾ
|
||||
|
||||
|
||||

|
||||
|
||||
<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>
|
||||
|
||||
|
||||

|
||||
|
||||
```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>
|
||||
|
||||

|
||||
|
||||
```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>
|
||||
|
||||

|
||||
|
||||
```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>
|
||||
|
||||

|
||||
|
||||
```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`
|
||||
|
||||
|
||||

|
||||
|
||||
|
||||
|
||||
**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>
|
||||
|
||||

|
||||
|
||||
```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>
|
||||
|
||||
|
||||
<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>
|
||||
|
||||

|
||||
|
||||
```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>
|
||||
|
||||

|
||||
|
||||
```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>
|
||||
|
||||

|
||||
|
||||
```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.
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user