当前位置: 首页 > article >正文

C# 类和继承(屏蔽基类的成员)

屏蔽基类的成员

虽然派生类不能删除它继承的任何成员,但可以用与基类成员名称相同的成员来屏蔽(mask)
基类成员。这是继承的主要功能之一,非常实用。

例如,我们要继承包含某个特殊方法的基类。该方法虽然适合声明它的类,但不一定适合派
生类。在这种情况下,我们希望在派生类中声明新成员以屏蔽基类中的方法。在派生类中屏蔽基
类成员的一些要点如下。

  • 要屏蔽一个继承的数据成员,需要声明一个新的相同类型的成员,并使用相同的名称。
  • 通过在派生类中声明新的带有相同签名的函数成员,可以屏蔽继承的函数成员。请记住,
    签名由名称和参数列表组成,不包括返回类型。
  • 要让编译器知道你在故意屏蔽继承的成员,可使用new修饰符。否则,程序可以成功编译,
    但编译器会警告你隐藏了一个继承的成员。
  • 也可以屏蔽静态成员

下面的代码声明了一个基类和一个派生类,它们都有一个名为Field1的string成员。使用
new关键字以显式地告诉编译器 屏蔽基类成员 。图8-4展示了每个类的实例。

class SomeClass   //基类
{public string Field1;...
}class OtherClass:SomeClass  //派生类
{new public string Field1;  //用同样的名称屏蔽基类成员
}

屏蔽基类成员

在下面的代码中,OtherClass派生自SomeClass,但隐藏了两个继承的成员。注意new修饰
符的使用。图8-5阐明了这段代码。

class SomeClass    //基类
{public string Field1="SomeClass Field1";public void Method1(string value){Console.WriteLine($"SomeClass.Method1:{value}");}
}class OtherClass:SomeClass   //派生类
{new public string Field1="OtherClass Field1";   //屏蔽基类成员new public void Method1(string value)           //屏蔽基类成员{Consoel.WriteLine($"OtherClass.Method1: {value}");}
}class Program
{OtherClass oc=new OtherClass();     //使用屏蔽成员oc.Method1(oc.Field1);              //使用屏蔽成员
}

隐藏基类的字段和方法

http://www.lryc.cn/news/2392143.html

相关文章:

  • 基于qt5和stk10开发的互联调试
  • matlab雷达定位仿真
  • 基于vue框架的动物园饲养管理系统a7s60(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
  • MySQL 索引和事务
  • BERT分类器和朴素贝叶斯分类器比较
  • WPS自动换行
  • C#面向对象核心:类继承详解
  • maven中的grpc编译插件protobuf-maven-plugin详解
  • 服务发现Nacos
  • 社群分享:义乌|杭州电商|店群卖家,私域鱼塘运营的排单系统开源|私域鱼塘运营|返款软件开源
  • C#回调函数深度解析
  • 通义智文开源QwenLong-L1: 迈向长上下文大推理模型的强化学习
  • HTTP代理的实际用处有哪些?HTTP代理强在哪里?
  • 低代码——表单生成器以form-generator为例
  • 【Vue Vapor Mode :技术突破与性能优化的可能性】
  • Parasoft C++Test软件单元测试_常见问题及处理
  • vue渲染数组各子项实现文本超出宽度显示tooltip
  • libreoffice容器word转pdf
  • AI模型升级与机器人产业落地同步推进
  • 安全编码与AI接口权限控制
  • linux centos 服务器性能排查 vmstat、top等常用指令
  • MySQL----视图的创造和使用
  • c/c++的opencv伽马噪声
  • LiveGBS国标视频平台收流模式:UDP、TCP被动与TCP主动传输模式之差异剖析
  • 跳表(Skip List)查找算法详解
  • React从基础入门到高级实战:React 核心技术 - React 与 TypeScript:构建类型安全的应用
  • Django orm详解--组成部件
  • Tomcat 使用与配置全解
  • Chrome 开发中的任务调度与线程模型实战指南
  • aws instance store 的恢复