zoukankan      html  css  js  c++  java
  • C#学习笔记(类的继承、重写)

    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;

        }

      }

    }

  • 相关阅读:
    简约 高效 基层管理体制
    六大纪律
    平行文
    党章
    四大考验 四大危险
    创新、协调、绿色、开放、共享五大发展理念
    微信公众号-->微信html页面缓存问题
    本地kafka环境部署
    >>读懂一本书:樊登读书法>>-->摘抄
    海龟交易法则(第3版)-->摘抄
  • 原文地址:https://www.cnblogs.com/DannyShi/p/4475826.html
Copyright © 2011-2022 走看看