码迷,mamicode.com
首页 > Windows程序 > 详细

C#学习笔记(类的继承、重写)

时间:2015-05-04 13:34:51      阅读:155      评论:0      收藏:0      [点我收藏+]

标签:

1 隐藏基类的方法

  当基类继承一个(非抽象的)成员时,也就继承了其实现代码。如果继承的成员是虚拟的,就可以用override关键字重写这段实现代码。无论继承的成员是否为虚拟,都可以隐藏这些代码。

  使用下面的代码就可以隐藏:

public class MyBaseClass

{

  public void DoSomething()

  {

    //Base implementation.

  }

  public class MyDerivedClass : MyClass

  {

    public void DoSomething()

    {

      //Derived class implementation, hide base implementation.

    }

  }

}

  尽管这段代码可以正常运行,三十会产生一个警告,说明隐藏了一个基类成员。如果是无意间隐藏了一个需要使用的成员,此时就可以改正错误。如果确实要隐藏该成员,就可以使用new关键字显式的表明意图:

public class MyDerivedClass : MyBaseClass

{

  new public void DoSomething()

  {

    //Derived class implementation,hide base implementation.

  }

}

  其工作方式是完全相同的,但是不会出现警告。此时应该注意隐藏基类成员和重写他们的区别。考虑下面的代码:

public class MyBaseClass

{

  public vritual void DoSometing()

  {

    Console.WriteLine("Base imp");

  }

}

public class MyDerivedClass : MyBaseClass

{

  public override void DoSomething()

  {

    Console.WriteLine("Derived imp");

  }

}

 

实现如下:
MyDerivedClass myObj = new MyDerivedClass();

MyBaseClass myBaseObj;

myBaseObj = myObj;

myBaseObj.DoSomething();

 

输出结果:

Derived imp

2 this关键字

  与base关键字一样,this也可以用在类成员的内部,且该关键字也引用对象实例。只是this引用的是当前的对象实例(即不在静态成员中使用this关键字,因为静态成员不是对象实例的一部分)。

  this关机那字最常用的功能就是把当前对象实例的引用传递给一个方法。

  this关键字的另一个常见的用法就是限定本地类型的成员,例如:

public class MyClass

{

  private int someData;

  public int SomeData

  {

    get

    {

      return this.someData;

    }

  }

}

 

C#学习笔记(类的继承、重写)

标签:

原文地址:http://www.cnblogs.com/DannyShi/p/4475826.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!