博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
(原创)c#学习笔记10--定义类成员02--类成员的其他议题02--调用重写或隐藏的基类方法...
阅读量:5162 次
发布时间:2019-06-13

本文共 1380 字,大约阅读时间需要 4 分钟。

10.2.2  调用重写或隐藏的基类方法

  无论是重写成员还是隐藏成员,都可以在派生类的内部访问基类成员。这在许多情况下都是很有用的,例如:

    要对派生类的用户隐藏继承的公共成员,但仍能在类中访问其功能。

    要给继承的虚拟成员添加实现代码,而不是简单地用重写的新执行代码替换它。

  为此,可以使用 base 关键字,它表示包含在派生类中的基类的实现代码(在控制构造函数时,其用法是类似的,如第9所述),例如:

public class MyBaseClass {    public virtual void DoSomething() {        // Base implementation.    }}public class MyDerivedClass : MyBaseClass {    public override void DoSomething() {        // Derived class implementation, extends base class implementation.        base.DoSomething();        // More derived class implementation.    }}

  这段代码执行包含在 MyBaseClass 中的 DoSomething()版本,MyBaseClass 是 MyDerivedClass的基类,而DoSomething()版本包含在MyDerivedClass中。因为base使用的是对象实例,所以在静态成员中使用它会产生错误

 

this关键字

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

  this关键字最常用的功能是把当前对象实例的引用传递给一个方法,如下例所示:

public void doSomething() {    MyTargetClass myObj = new MyTargetClass();    myObj.DoSomethingWith( this );}

  其中,被实例化的MyTargetClass实例有一个DoSomethingWith()方法,该方法带有一个参数,其类型与包含上述方法的类兼容。这个参数类型可以是类的类型、由这个类继承的类类型,或者由这个类或System.Object实现的一个接口。

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

public class MyClass {    private int someData;        public int SomeData {        get {            return this.someData;        }    }}

  许多开发人员都喜欢这个语法,它可以用于任意成员类型,因为可以一眼看出引用的是成员,而不是局部变量

转载于:https://www.cnblogs.com/wodehao0808/p/4957987.html

你可能感兴趣的文章
Bootstrap模态框的学习笔记
查看>>
switf
查看>>
vue 学习
查看>>
背景6
查看>>
C++ STL 学习
查看>>
构建高性能WEB站点之 吞吐率、吞吐量、TPS、性能测试
查看>>
Js - 判断元素是否含有某个类
查看>>
CSS3 -- 背景裁剪(background-clip)
查看>>
错题集
查看>>
动态创建表和生成数据
查看>>
整数反转的递归算法
查看>>
作业4
查看>>
NoSQL简单介绍
查看>>
Android SDK在线更新镜像服务器大全
查看>>
Python判断一个数是否为小数
查看>>
iOS - Swift NSRect 位置和尺寸
查看>>
iOS - Frame 项目架构
查看>>
[AHOI2009]飞行棋
查看>>
CSS中background样式的repeat和no-repeat
查看>>
xml学习笔记
查看>>