对象与代码复用
一、对象的声明:
与变量的声明完全相同,不同的是声明后并不能立刻使用,只有在创建完对象后才能使用。
对于一个不存在的对象引用,且值是null,表示不指向堆中的任何对象。
eg: Car JeepCar=null;
使用完对象,希望以后还能使用,不删除的话,只需要设其值为null
二、对象的方法和属性:
构造函数的定义和使用。
函数的重载
运算符重载:
public static ClassType operator + (Object lhs,Object rhs)
{
ClassType c; return c;
}
共享成员和类关系
一、共享成员
共享属性的使用有两种方式: 实例.属性 类.属性
静态构造函数。
二、共享方法
类关系
一、关联:——Uses a
1、在类A中创建成员变量,接收、创建并/或返回B的对象;
2、类A中定义一个数据成员,作为类B的对象;
类之间的交流和借用。
二、包含——has a
将一个类中的数据成员定义成从另一个类派生出来的对象。
三、继承——is a
抽象类是不能继承的。
继承接口的类必须实现接口中定义的方法。一个类可以继承0或多个接口。
四、虚拟函数:
public virtual bool driver(){};
virtual告诉编译器,这个方法可以在继承类中重写,但不一定必须重写。继承类中如此重写:
public override bool driver(){};
override告诉编译器,我们不希望使用原来的版本,而是直接使用现在的版本。
另外一种情况是,基类的函数不是虚拟函数,但是我们也不想要使用,那么只有使用另外一种覆盖方式:
public new bool dot(){};
这样就可以完全屏蔽原来类函数的影响。
再次访问的时候只有使用base.driver()和base.dot()访问了。
显然对于当前类的访问就要使用关键字this了。
五、抽象类和接口:
在抽象类中可以定义抽象的方法。关键字:abstract
六、在对象类型之间转换
七、装箱与拆箱
装箱用于描述把值类型转化成引用类型的过程。
把引用类型转化成值类型的逆过程称为拆箱。
八、用户定义的转换