C#之值类型和继承

类是引用类型,结构是值类型

值类型是存放在栈上的,引用类型是存放在堆上的,栈上存放的是引用的地址。

类当中默认有一个无参数的构造函数,当在类中写一个有参数的构造函数,默认无参数的构造函数会消失,在类中写构造函数参数列表中参数个数可以不确定

在结构中也有一个默认的无参函数,当在结构中写一个有参数的构造函数, 默认的无参函数的构造函数不会消失,在结构中写构造函数,要把所有的字段都要完全赋值。

继承的使用

子类继承了父类的成员,子类还可以有自己的成员。

Protected 访问修饰符不允许其他非子类访问

子类中如果有有参的构造函数,则默认是调用父类中无参的构造函数。

传递性:

单根性:子类只能有一个父类,父类可以有多个子类。

类型转换

里氏转换:子类和父类的转换。

父类对象不能直接转化为子类

如果父类在实例化的时候实例化的是子类,那么再转换这个子类就可以了。

如果父类在实例化的时候实例化的是子类,在转换的时候的,如果将这个子类变成另一个子类那么会报异常

将子类实例化之后,可以直接将子类转化成父类

Is as

Bool result = p is teacher  然后再后面用if语句进行判断

Person p = t as person; 可以直接将父类转换为子类,但是可能会出现异常。

猜你喜欢

转载自blog.csdn.net/chenguanghan123/article/details/80559364
今日推荐