C#面向对象的编程思想的精髓:模拟真实世界,把真实世界中的事物抽象成类,整个运用程序就是靠类和类之间的相互协作和通信完成系统功能
总结以上的说法:程序一切来源于类,并在不同的的需求情况下在类的基础上进行扩展,以完成系统所需功能,并且不断的优化系统性能
下面讲一下我个人对“类”的理解和使用
一、关于类的基本小知识(内容不多,作为对类的系统理解)
- 普通基类
- 普通基类虚成员(virtral关键字修饰的成员,可以被子类重写(override))
- 抽象类(abstract 关键字修饰,有抽象成员、实例成员,类本身不能new。抽象成员一般指抽象方法,只能有方法的声明不能具体实现,实现是由子类来完成的(override))
- 接口(interface 关键字修饰,不能new,天生就是public 成员不能使用public 进行修饰,存在显示和隐式两种实现方式,实现接口的类必须实现接口成员)
补充一下类的访问范围:子类继承基类,可以继承基类的共有成员和受保护成员。私有成员只在类的内部可见,一般是类中的字段成员,类的外部可以通过类的属性访问器(get/set)来访问类私有成员。类的外部只能访问类的共有成员。
那么上面所列举的四种情况是什么关系呢,又是在什么情况下使用呢,我下面做一个自己的简单理解
总结一句话:继承使我们的代码得到一定程度的优化,当这些知识掌握很好之后你就会发现实现相同的功能,使用继承代码量会减少很多,更精简干练
二、举个小梨子
1、声明一个抽象类
1 abstract class LongXiaM2 {3 public abstract void Tongzhi(int tem);4 }
2、创建两个普通基类实现上面抽象类
首先先声明每个类各自会用的方法
1 class Alerm2 {3 public void AlermXiazi(string name,int tem)4 {5 Console.WriteLine("{0}tongzhi,wenduyijing {1} keyi dashui le ",name,tem);6 }7 }
1 class ShowInfo2 {3 public void TongzhiLongzi(string name,int tem)4 { 5 Console.WriteLine("{0}tongzhi shuiwen yijing {1} ,keyhidashui le ",name,tem);6 }7 }
创建子类
1 class xiazi:LongXiaM 2 { 3 string name; 4 public xiazi(string n) 5 { 6 this.name = n; 7 } 8 public override void Tongzhi(int tem) 9 {10 Alerm a = new Alerm();11 a.AlermXiazi(name,tem);12 }13 }14 15 class longzi:LongXiaM16 {17 string name;18 public longzi(string n)19 {20 this.name = n;21 }22 public override void Tongzhi(int tem)23 {24 ShowInfo t = new ShowInfo();25 t.TongzhiLongzi(name,tem);26 }27 }
3、创建一个中间调用的方法
1 class BoilWater 2 { 3 private int tem; 4 public Listlxm = new List (); 5 6 public void ShowBaseInfo() 7 { 8 for (int i = 0; i <= 100; i++) 9 {10 tem = i;11 if (i > 99)12 {13 if (lxm.Count > 0)14 {15 foreach (var lx in lxm)16 {17 lx.Tongzhi(tem);18 }19 }20 }21 }22 }23 }
4、在主程序中调用
1 static void Main(string[] args)2 {3 BoilWater b = new BoilWater();4 b.lxm.Add(new xiazi("看不见"));5 b.lxm.Add(new longzi("听不见"));6 b.ShowBaseInfo();7 }
5、结果
1 看不见tongzhi,wenduyijing 99 keyi dashui le2 听不见tongzhi shuiwen yijing 99,keyhidashui le
三、上面这个例子可以看出,当我们学会如何灵活的使用类,巧妙的设计逻辑结构后,在代码上可以节省很大的力气,也可以看出我们的专业性