2012.4.17C#基础学习笔记
——张伟
1. 类是不是可以继承?
Person
Student
Teacher
三个类,因为学生和老师都是任,所有抽象出来一个“人”的类,然后,现在让学生和老师都继承Person,只需在类名后加:(冒号)和Person
例如:class Student :Person
{
}
其中,在Person 中可以有构造函数,子类Student中也可以有构造函数
既然都能有构造函数,那么是否可以调用一下父类中的构造函数呢?
第一:如果子类继承父类
是否可以自动调用到父类的字段或者说属性?
可以。只需通过一个有参的构造函数再用一个关键字base()把参数传过去,这样,子类就能用到父类的构造函数,然后间接的给父类的字段或属性赋值了。
2. 里氏转换
is 的语法: 布尔类型 变量 = 子类对象 is 父类
如果布尔类型的变量为true则表示转换成功
如果布尔类型的变量为false则表示转换失败
例如:
Person p = newPerson();
Student s = newStudent();
bool b = s isPerson;
if(b)
{ Console.WriteLine(“转换成功,我成父亲啦”);}
else
{Console.WriteLine(“转换失败”);}
Console.ReadKey();
3. is 的用法: 对象或者是实例 is 类名
可以返回一个bool值,表示是否可以转化
判断父类是否能转化为子类的时候经常使用
父类要想转化成子类,需强制转换,和之前的int 和double 之间的转换类似
4. as 语法: 类型名 变量名 = 对象或实例 as 类型名;
虽然类可以进行转换,有隐式转换和显示转换(强制转换),但有的时候可能会出问题
可以通过is 或者as 进行判断转换,这样就不会报错了。