base 关键字(类)

来源:互联网 发布:淘宝宝贝主图怎么更换 编辑:程序博客网 时间:2024/04/29 20:25

通过base 关键字访问基类的成员:

        调用基类上已被其他方法重写的方法。

      指定创建派生类实例时应调用的基类构造函数。

      基类访问只能在构造函数、实例方法或实例属性访问器中进行。

      从静态方法中使用 base 关键字是错误的。

实例:

using System ;

 public class Parent

  {

 string parentString;

 public Parent( )

          { Console.WriteLine("Parent Constructor.") ; }  

public Parent(string myString)

         {parentString = myString;Console.WriteLine(parentString) ;}

public void print( )

           { Console.WriteLine("I'm a Parent Class.") ; }

}  

public class Child : Parent

{  

public Child( ) : base("From Derived") //类child中的构造函数,引用基类中的构造函数.

        { Console.WriteLine("Child Constructor.") ; }

public void print( )

        {base.print( ) ;Console.WriteLine("I'm a Child Class.") ;} 

public static void Main( )

        {  

         Child child = new Child( ) ;//在外部调用时(static)首先执行构造函数

          child.print( ) ;                    //执行child类中的方法print( )

         ((Parent)child).print( ) ;     //调用基类中的方法print( )

        }

 }

说明:

  1. 派生类在初始化的过程中可以同基类进行通信(通过构造函数)。
  2. Child类可以自己重新定义print( )方法的实现。Child的print( )方法覆盖了Parent中的 print 方法。结果是:除非经过特别指明,Parent类中的print方法不会被调用。
  3. 方法名前面为"base",一旦使用"base"关键字之后,你就可以访问基类的具有公有或者保护权限的成员。 Child类中的print( )方法的执行结果出现上面的第三行和第四行。
  4. 访问基类成员的另外一种方法是:通过显式类型转换。

      在Child类的Main( )方法中的最后一条语句就是这么做的。记住:派生类是其基类的特例。这个事实告诉我们:可以在派生类中进行数据类型的转换,使其成为基类的一个实例。上面代码的最后一行实际上执行了Parent类中的print( )方法。
     
原创粉丝点击