sealed关键字
sealed只能写在override前面,其它的成员不能用sealed
可以sealed类本身,就等于sealed类里面所有的virtual函数了
sealed出现的原因其实很简单,
因为不停的继承会产生很多错误,
所以有些类必须封闭,
于是产生了sealed关键字。
初始类并不需要封闭,
只有继承和重写的类才需要sealed。
base关键字
base和this略像,base主要用于:
✦ 从子类访问父类里被重写的函数
✦ 调用父类的构造函数
public class House:Asset
{
...
public override decimal Liability=>base.Liability+Mortgage;
}
✦ 这种写法可保证,访问的一定是Asset的Liability属性,无论该属性是被重写还是被隐藏了
构造函数和继承
① 子类必须声明自己的构造函数(父类的有参构造函数存在时)
② 父类的构造函数(有参)不是自动继承到子类的,需要在子类中访问才行
③ 子类必须重新定义它想暴露的构造函数(不管有参无参)
错误示例:
正确示例:
✦ 调用父类的构造函数需要使用base关键字
✦ 父类的构造函数肯定会先执行
■ 当子类定义了构造函数但没用base关键字,父类的无参构造函数会被隐式继承。
★ 如果父类没有无参构造函数,那么子类就必须在构造函数里使用base关键字。
Today's comments have reached the limit. If you want to comment, please wait until tomorrow (UTC-Time).
There is 04h29m47s left until you can comment.