base和this关键字

问题:

1、是否可以在静态方法中使用base和this;

2、base常用于哪些方面,this常用于哪些方面;

3、base可以访问基类的一切成员吗;

4、如果有三层或更多继承,那么最下级派生类的base指向哪一层呢,例如.NET体系中,如果以base访问,则应该是直接父类实例呢还是最高层实例呢;

5、以base和this应用于构造函数时,继承类对象实例化的执行顺序如何;

答疑:

base和this为访问关键字。用于实现继承机制的访问操作,来满足对对象成员的访问,从而为多态机制提供更灵活的处理方式。

1、在静态成员中使用base和this都是不允许的,因为base和this访问的都是类的实例,也就是对象,而静态成员只能由类来访问,不能由对象访问。

2、base常用于在派生类中访问重写的基类成员,this常用于引用类的当前实例,也包括继承而来的方法,通常可以隐藏this。

3、base可以访问基类的公有和受保护成员,不能访问私有成员,this指代类本身,可以访问本类的所有成员。

4、base的指向遵从最近原则(重载了该方法的最近的类方法)。

5、实例化首先实例化基类,类的实例化总是先调用System.Object.Object()开始。所以base和this应用于构造函数时,都是先实例化base()或者this()的。

扩展:

this可以用来声明索引器。

原文地址:https://www.cnblogs.com/Med1tator/p/6597640.html