刘铁猛C#入门 024 类的声明,继承和访问控制

news2024/11/14 2:37:17

类声明的全貌

C#声明类的位置

声明既定义(C#与Java)

  • 类的修饰符

最简单的类声明

类的访间控制 :默认internal

共性

  • public 和 internal 都是访问修饰符,用于定义一个类型的成员可以被谁访问。
  • 它们都可以用来声明类、结构、接口、枚举、字段、方法、属性或事件等

区别

  • public 声明的成员对所有其他代码都是可见的,无论这些代码是否位于同一个文件、同一个命名空间或者同一个程序集内。
  • internal,声明的成员仅对包含该成员的程序集内的代码可见。把成员的访问性限制在同一个项目(程序集)里面

类成员的访间控制

类的继承

  • 类在功能上的扩展
  • 只能有一个基类,但可以实现多个接口
  • 类访问级别对继承的影响 ,子类的访问级别不能超越父类
  • sealed类不能被继承,sealed修饰的类为封闭类
  • 是一个,语义上一个子类的实例也是其父类的实例,一个派生类的实例也是其基类的实例。

继承的本质:继承的本质是派生类在基类已有的成员的基础之上对基类进行横向或者纵向上的扩展

  • 横向扩展:类成员在数量上面的扩充
  • 纵向扩展:不增加类成员的个数,对某些类成员版本进行扩充 —— 重写

成员的继承与访问

  • 派生类对继承成员的访问
  • 派生类对基类成员的访问
    • internal 同一程序集
    • private类体内 成员访问默认private
    • protected亲族之间,多修饰在父类的方法中
      • protected internal 一起使用:表既可以被在成员所在的程序集访问 ,也可以被继承链中的类访问
  • 构造器的不可继承性

面对对象的实现风格

  • Class - based 基于类进行的封装和多态
  • Prototype - based 基于原型进行的封装和多态 、JavaScript

派生类对其类的成员获得与访问在派生类中访间基类的成员

构造器的不可继承性

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2239844.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

人工智能(AI)对于电商行业的变革和意义

![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/402a907e12694df5a34f8f266385f3d2.png#pic_center> 🎓作者简介:全栈领域优质创作者 🌐个人主页:百锦再新空间代码工作室 📞工作室:新空间代…

pgsql 版本升级和数据迁移(编译版)

最近给pgsql从16.0升级到16.4,有挺多细节 1.关闭pgsql 为了保证数据一致性和过渡平稳,还是需要暂停pgsql。 systemctl stop pgsql2.备份现有数据 需要切换到pgsql的用户,通常用root是不行的 pg_dumpall > /xxx/xxx/backup.sql3.重命名…

⚙️ 如何调整重试策略以适应不同的业务需求?

调整 Kafka 生产者和消费者的重试策略以适应不同的业务需求,需要根据业务的特性和容错要求来进行细致的配置。以下是一些关键的调整策略: 业务重要性: 对于关键业务消息,可以增加重试次数,并设置较长的重试间隔&#x…

uniCloud云对象调用第三方接口,根据IP获取用户归属地的免费API接口,亲测可用

需求 在2022年5月初,网络上各大平台上,都开始展示用户IP属地,在某音、某手等小视频平台以及各主流网站应用中,都展示IP归属地,如下图所示: 解决办法 收费文档的肯定有很多,基本你百度搜“归…

蓝桥杯PythonB组扫盲

题目分布(参考2024年省赛):总共八道题,两填空8代码(考察计算机基础知识和一些简单数学计算知识,不会太难,稍微准备下就行),六道程序设计题(重点和难点&#x…

STM32单片机WIFI语音识别智能衣柜除湿消毒照明

实践制作DIY- GC0196-WIFI语音识别智能衣柜 一、功能说明: 基于STM32单片机设计-WIFI语音识别智能衣柜 二、功能介绍: STM32F103C系列最小系统板LCD1602显示器ULN2003控制的步进电机(柜门开关)5V加热片直流风扇紫外消毒灯DHT11…

git重置的四种类型(Git Reset)

git区域概念 1.工作区:IDEA中红色显示文件为工作区中的文件 (还未使用git add命令加入暂存区) 2.暂存区:IDEA中绿色(本次还未提交的新增的文件显示为绿色)或者蓝色(本次修改的之前版本提交的文件但本次还未提交的文件显示为蓝色)显示的文件为暂存区中的文件(使用了…

MySQL技巧之跨服务器数据查询:基础篇-更新语句如何写

MySQL技巧之跨服务器数据查询:基础篇-更新语句如何写 上一篇已经描述:借用微软的SQL Server ODBC 即可实现MySQL跨服务器间的数据查询。 而且还介绍了如何获得一个在MS SQL Server 可以连接指定实例的MySQL数据库的连接名: MY_ODBC_MYSQL 以及用同样的…

C#入门 023 什么是类(Class)

什么是“类” 是一种数据结构 是一种数据类型 代表现实世界中的“种类” 构造器和析构器 析构器 析构器(Destructor)是一种特殊的成员方法,用于在对象被垃圾回收器(Garbage Collector, GC)回收之前执行清理操作。…

AXI DMA (一)

免责声明:本文所提供的信息和内容仅供参考。作者对本文内容的准确性、完整性、及时性或适用性不作任何明示或暗示的保证。在任何情况下,作者不对因使用本文内容而导致的任何直接或间接损失承担责任,包括但不限于数据丢失、业务中断或其他经济…

ubuntu 安装kafka-eagle

上传压缩包 kafka-eagle-bin-2.0.8.tar.gz 到集群 /root/efak 目录 cd /root/efak tar -zxvf kafka-eagle-bin-2.0.8.tar.gz cd /root/efak/kafka-eagle-bin-2.0.8 mkdir /root/efakmodule tar -zxvf efak-web-2.0.8-bin.tar.gz -C /root/efakmodule/ mv /root/efakmodule/efak…

TCP 三次握手意义及为什么是三次握手

✨✨✨励志成为超级技术宅 ✨✨✨ TCP的三次握手在笔试和面试中经常考察,非常重要,那么大家有没有思考过为什么是三次握手,俩次握手行不行呢?四次握手行不行呢?如果大家有疑问或者不是很理解,那么这篇博客…

vmware在全屏模式下快速切换回win桌面的方法

window上开发没有ubuntu下的方便,经常在window主机和ubuntu虚拟机直接切换太麻烦,每次得ctrlalt从虚拟机释放鼠标才可以切换,经过折腾发现以下几种方法可行 方法1 虚拟机监听切换按键并通知主机进行切换桌面 虚拟主机放在单独的一个桌面上并…

[Docker#8] 容器配置 | Mysql | Redis | C++ | 资源控制 | 命令对比

目录 一:Mysql 容器化安装 二:Redis 容器化安装 Redis 简介 Redis 容器创建 三:C容器制作 四:容器资源更新 常见问题 一:Mysql 容器化安装 进入 mysql 的镜像网站,查找 mysql 的镜像 mysql docker…

泷羽sec学习打卡-Linux基础

声明 学习视频来自B站UP主 泷羽sec,如涉及侵权马上删除文章 笔记的只是方便各位师傅学习知识,以下网站只涉及学习内容,其他的都与本人无关,切莫逾越法律红线,否则后果自负 关于Linux的那些事儿-Base 一、Linux-Base什么时openssl?有哪些加密参数?常用lin…

SpringBoot后端解决跨域问题

1.全局方式 新建一个conifg配置类,内容如下: Configuration public class CorsConfig implements WebMvcConfigurer {Overridepublic void addCorsMappings(CorsRegistry registry) {registry.addMapping("/**")//是否发送Cookie.allowCrede…

odoo17 owl 前端 顶部导航栏右侧添加自定义按钮

odoo17 前端 顶部导航栏右侧添加自定义按钮 先看图 很多时候都想要在这添加个自定义按钮或图标, 无穷下手添加 这里将展示如何在顶部header添加自定义 添加自定义模块 demo 目录结构如下 └─demo│ __init__.py│ __manifest__.py│├─static│ └─src│ ├─s…

Power bi中的lookupvalue函数

lookupvalue函数是一个非常实用的函数,它可用于在两个表之间查找相应的值。kagkupMalue函数可以将一个表中的列值作为参数传递给另一个表中的列,并返回在第二个表中与该值匹配的另一个列的值。在实践中,lookupvalue函数通常用于两个表之间的关…

golang分布式缓存项目 Day5 分布式节点

该项目原作者:https://geektutu.com/post/geecache-day1.html。本文旨在记录本人做该项目时的一些疑惑解答以及部分的测试样例以便于本人复习 1 流程回顾注: 我们在GeeCache 第二天 中描述了 geecache 的流程。在这之前已经实现了流程 ⑴ 和 ⑶&#xf…

[产品管理-76]:延续是创新与颠覆式创新的比较

目录 一、概述 1、定义与特征 2、市场影响与竞争策略 3、实施难度与风险 4、案例分析 二、示例 1. 延续性创新示例 2. 创新示例 3. 颠覆式创新示例 一、概述 延续性创新与颠覆式创新是技术创新领域的两种重要策略,它们在多个方面存在显著差异。 以下是对…