C#学习记录(19)面向对象编程的技术(上)
接口
继承
多态性
对象之间的关系
运算符重载
事件
值类型和引用类型
一.接口
接口是把公共实例(非静态)方法和属性组合起来,以封装特定功能的一个集合。一且定义了接口,就可以在类中实现它。这样,类就可以支持接口所指定的所有属性和成员。
接口在UML 中,用“棒棒糖”语法来表示。
接口就是类的小弟。类是大哥,接口包含了类的一部分权力。程序可以调用接口的成员,也就是类的成员。程序员为了保持类的稳定性,我们一般通过接口这个中介来进行调用。同时,当我们需要什么新的功能,可以让接口通知类来进行定义。
二.继承
Class A:B
A可以继承B的所有公共成员和保护成员,但是不可以继承私有成员。
派生类也可以重写基类中的某些方法,可以是重写普通函数(new),也可以是重写虚函数(override)。
虚函数是virtule关键词标记出来的方法。
三.多态性
继承的一个结构是派生于基类的类在方法和属性上有一定的重叠,因此,可以使用相同的语法处理从同一个基类实例化的对象。
多态性则更推进了一步。可以把某个派生类型的变量赋给基本类型的变量,例如:
Animal myAnimal = myCow;
myAnimal.EatFood(); ///直接调用派生类的方法
在派生于同一个类的不同时象上执行任务时,多态性是一种极有效的技巧,其使用的代码最少。
四.对象之间的关系
包含关系:一个类包含另一个类。这类似于世承关系,但包含类可以控制对被包含类的成员的访问,甚至在使用被包含类的成员前进行其他处理。
集合关系:一个类用作另一个类的多个实例的容器。这类似于对象数组,但集合有其他功能,包括索引、排序和重新设置大小等。
1.包含关系
2. 集合关系
Animal[] animals = new Animal[5];
集合通常有一个Item 属性,它根据对象的索引返回该对象,还允许更复杂的访问方式来实现。
连接线末尾的数字表示一个Animals 对象可以包含0到1,2,3...个Animal 对象。