C#初级——继承
继承
继承是面向对象程序设计中最重要的概念之一。继承允许我们根据一个类来定义另一个类,不需要完全重新编写新的数据成员和成员函数,只需要设计一个新的类,继承了已有的类的成员即可。这个已有的类被称为的基类(父类),这个新的类被称为派生类(子类)。
父类与子类
访问修饰符 class 父类名
{
...
}
class 子类名 : 父类名
{
...
}
父类中,不是所有的属性和方法都会继承给子类的。
- public :子类和其他都可以访问
- protected :外部不能访问,自己和子类可以访问
- privated :只能在该类中访问,不能继承
class Animal{public int age;public string name;//外部不能访问,自己和子类可以访问protected int money;//只能在该类中访问,不能继承private int home;}//public 成员和 protected 成员都会被继承过来class Cat : Animal{public int legs = 4;}class Duck : Animal{public int legs = 2;}
调用函数
派生类可以通过关键字base来调用基类的构造函数和方法。
class Animal{public int age;public string name;//外部不能访问,自己和子类可以访问protected int money;//只能在该类中访问,不能继承private int home;public Animal(int inAge, string inName, int inMoney){age = inAge;name = inName;money = inMoney;Console.WriteLine("Animal 的构造函数被调用了!");}public virtual void Cry(){Console.WriteLine("Animal:动物叫");}}//public 成员和 protected 成员都会被继承过来class Cat : Animal{public int legs = 4;//派生类可以通过关键字base来调用基类的构造函数。public Cat(int inAge, string inName, int inMoney):base(inAge, inName, inMoney){Console.WriteLine("Cat 的构造函数被调用了!");}public override void Cry(){//派生类可以通过关键字base来调用基类的方法。base.Cry();Console.WriteLine("喵喵喵");}}class Duck : Animal{public int legs = 2;//派生类可以通过关键字base来调用基类的构造函数。public Duck(int inAge, string inName, int inMoney):base (inAge, inName, inMoney){Console.WriteLine("Duck的构造函数被调用了!");}public override void Cry(){//派生类可以通过关键字base来调用基类的方法。base.Cry();Console.WriteLine("嘎嘎嘎");}}
基类的初始化
派生类继承了基类的成员变量和成员方法。因此父类对象应在子类对象创建之前被创建。
static void Main(string[] args){Animal animal = new Animal(1, "动物", 2);animal.Cry();Cat sonObj = new Cat(10, "猫", 100);sonObj.Cry();Console.WriteLine(sonObj.name);//使用基类的类型存放子类的对象Animal obj1 = new Cat(5, "猫", 101);obj1.Cry();Animal obj2 = new Duck(2, "鸭子", 2);obj2.Cry();}

相关文章:
C#初级——继承
继承 继承是面向对象程序设计中最重要的概念之一。继承允许我们根据一个类来定义另一个类,不需要完全重新编写新的数据成员和成员函数,只需要设计一个新的类,继承了已有的类的成员即可。这个已有的类被称为的基类(父类࿰…...
Github 2024-07-29 开源项目日报 Top10
根据Github Trendings的统计,今日(2024-07-29统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量JavaScript项目3非开发语言项目3Python项目1TypeScript项目1C++项目1Lean项目1HTML项目1免费编程学习平台:freeCodeCamp.org 创建周期:3302 天…...
nginx反向代理和负载均衡+安装jdk-22.0.2
ps -aux|grep nginx //查看进程 nginx 代理 nginx代理是负载均衡的基础 主机:192.168.118.60 这台主机只发布了web服务,没有做代理的任何操作 修改一下index.html中的内容 echo "this is java web server" > /usr/local/nginx/htm…...
软考高级科目怎么选?软考高级含金量排序
软考既是国家职业资格考试,又是职称资格考试,含金量很高。软考的报考不设置任何条件,可以跨级考试,也就是非相关专业的人,也可以直接考高级。因此近些年报考软考、尤其是软考高级的人越来越多。 软考高级证书…...
【机器学习西瓜书学习笔记——模型评估与选择】
机器学习西瓜书学习笔记【第二章】 第二章 模型评估与选择2.1训练误差和测试误差错误率误差 欠拟合和过拟合2.2评估方法留出法交叉验证法自助法 2.3性能度量查准率、查全率与F1查准率查全率F1 P-R曲线ROC与AUCROCAUC 代价敏感错误率与代价曲线代价曲线 2.4比较检验假设检验&…...
vue3+cesium创建地图
1.我这边使用的是cdn引入形式 比较简单的方式 不需要下载依赖 在项目文件的index.html引入 这样cesium就会挂载到window对象上面去了 <!-- 引入cesium-js文件 --><script src"https://cesium.com/downloads/cesiumjs/releases/1.111/Build/Cesium/Cesium.js"…...
Zookeeper客户端和服务端NIO网络通信源码剖析
文章目录 服务端的ServerCnxFactory到底是个什么东西?ServerCnxFactory 的作用ServerCnxFactory 的实现使用 ServerCnxFactory 的示例注意事项ServerCnxFactory是什么时候完成初始化的?初始化流程代码示例详细步骤1. 创建实例2. 配置3. 启动初始化时机总结服务端基于NIO的Ser…...
从DevOps到DevSecOps是怎样之中转变?
DevSecOps是DevOps实践的自然演进,其重点是将安全集成到软件开发和部署流程中。在DevOps和DevSecOps发展之前,企业通常在在软件部署前进行集中的安全测试,导致安全介入严重滞后,漏洞分风险无法及时修复,影响上线交付。…...
ORM与第三方数据库对接的探讨及不同版本数据库的影响
对象关系映射(Object-Relational Mapping,ORM)是一种将程序中的对象与数据库中的数据进行映射的技术,使开发者可以通过操作对象来间接操作数据库。然而,在实际应用中,ORM并不是总能完美地对接陌生的第三方数…...
Windows远程桌面无法拷贝文件问题
场景说明 Winwdows远程桌面,相比Linux方便一点就是,同是windows连接,其中复制粘贴功能,可以在两个windows无缝切换。 但最近笔者远程一台测试windows服务器时,发现无法在服务器上复制内容到本地,也无法从…...
优化数据处理效率,解读 EasyMR 大数据组件升级
EasyMR 作为袋鼠云基于云原生技术和 Hadoop、Hive、Spark、Flink、Hbase、Presto 等开源大数据组件构建的弹性计算引擎。此前,我们已就其展开了多方位、多角度的详尽介绍。而此次,我们成功接入了大数据组件的升级和回滚功能,能够借助 EasyMR …...
并发编程AtomicInteger详解
AtomicInteger 是 Java 并发包 (java.util.concurrent.atomic) 中的一个原子变量类,用于对 int 类型的变量进行原子操作。它利用底层的 CAS(Compare-And-Swap)机制,实现了无锁的线程安全。AtomicInteger 常用于需要高效、线程安全…...
ctfshow 权限维持 web670--web679
web670 <?php// 题目说明: // 想办法维持权限,确定无误后提交check,通过check后,才会生成flag,此前flag不存在error_reporting(0); highlight_file(__FILE__);$a$_GET[action];switch($a){case cmd:eval($_POST[c…...
职场生存指南
求职篇 面试潜台词分析 (1)介绍: “请做一下自我介绍?” ❌:慢吞吞的介绍:叫什么,来自学校,专业,工作了那几家公司。 问题目的:个人优势+岗位匹配度+个人身上技能标签 (2)反问: “你还有什么想问的吗?” 问题目的:对工作的好奇心+个人积极性<——岗位…...
Spring源码(八)--Spring实例化的策略
Spring实例化的策略有几种 ,可以看一下 InstantiationStrategy 相关的类。 UML 结构图 InstantiationStrategy的实现类有 SimpleInstantiationStrategy。 CglibSubclassingInstantiationStrategy 又继承了SimpleInstantiationStrategy。 InstantiationStrategy I…...
部署KVM虚拟化平台
文章目录 KVM虚拟化架构KVM组成KVM虚拟化三种模式 KVM虚拟化架构 KVM模块直接整合在Linux内核中 KVM组成 e KVM Driver虚拟机创建虚拟机内存分配虚拟CPU寄存器读写虚拟CPU运行 QEMU(快速仿真器) 模拟PC硬件的用户控件组件提供I/O设备模型及访问外设的途径 KVM虚拟化三种模式 客…...
Java对象模型深度剖析:从POJO到ENTITY
引言 在Java企业级应用开发中,对象模型是构建软件架构的核心。它们不仅帮助我们组织代码,还提升了代码的可读性和可维护性。本文将深入介绍Java中的几种关键对象模型:POJO、DTO、DAO、PO、BO、VO、QO和ENTITY,以及DO,…...
Nginx日志分析:编写Shell脚本进行全面日志统计
Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。无论是在大流量的网站还是小型的个人博客中,Nginx都得到了广泛应用。在实际生产环境中,对Nginx日志的分析有助于我们了解网站的访问情况,发现潜在问题…...
【Gin】深度解析:在Gin框架中优化应用程序流程的责任链设计模式(下)
【Gin】深度解析:在Gin框架中优化应用程序流程的责任链设计模式(下) 大家好 我是寸铁👊 【Gin】深度解析:在Gin框架中优化应用程序流程的责任链设计模式(下)✨ 喜欢的小伙伴可以点点关注 💝 前言 本次文章分为上下两部分…...
C语言——运算符及表达式
C语言——运算符及表达式 运算符运算符的分类(自增运算符)、--(自减运算符)赋值运算符逗号运算符(顺序求值运算符) 表达式 运算符 运算符的分类 C语言的运算符范围很宽,除了控制语句和输入输出…...
深入解析 iOS 上 fixed 底栏与滚动容器的手势冲突:从 H5 修复到原生根治
在移动端 H5 开发中,我们时常遇到这样的场景:页面底部有一个固定定位(position: fixed)的按钮栏或底栏,上方是一个可滚动的长列表。在 iOS 设备上,当用户尝试从底部 fixed 区域起手向上滑动时,列表却纹丝不动,仿佛被“粘”住了。这个现象不是偶发 bug,而是 iOS 对 fix…...
Omni-Vision Sanctuary 模拟电路设计可视化:与 Multisim 仿真结果结合生成原理图效果图
Omni-Vision Sanctuary 模拟电路设计可视化:与 Multisim 仿真结果结合生成原理图效果图 1. 电子工程师的文档痛点 在电子设计领域,工程师们经常面临一个共同的烦恼:花大量时间完成的电路仿真和分析,最终呈现给团队或客户的文档却…...
Anthropic 又双叒翻车了:Claude Code源代码打包失误,这已经是第几次了?
今天(2026-03-31)上午,Anthropic的Claude Code CLI又出大糗了。 安全研究员 Chaofan Shou发现: 他们的 npm 包里多塞了一个 60MB 的 cli.js.map 文件。 结果呢?完整源代码直接公开——1900多个 TypeScript 文件&#x…...
Windows资源管理器HEIC缩略图:让iPhone照片在Windows上“活“起来
Windows资源管理器HEIC缩略图:让iPhone照片在Windows上"活"起来 【免费下载链接】windows-heic-thumbnails Enable Windows Explorer to display thumbnails for HEIC files 项目地址: https://gitcode.com/gh_mirrors/wi/windows-heic-thumbnails …...
Qwen3-14B推理速度实测:10核CPU+24GB显存下首token延迟<800ms
Qwen3-14B推理速度实测:10核CPU24GB显存下首token延迟<800ms 1. 测试环境与配置 1.1 硬件配置 本次测试使用的硬件配置完全匹配Qwen3-14B私有部署镜像的推荐规格: GPU:RTX 4090D 24GB显存(NVIDIA驱动550.90.07)…...
告别重复造轮子:用快马AI一键生成高安全性的标准化登录模块
告别重复造轮子:用快马AI一键生成高安全性的标准化登录模块 最近在开发一个需要用户系统的项目时,遇到了一个常见但耗时的问题:如何快速实现一个既安全又美观的登录模块。相信很多开发者都深有体会,每次新建项目都要从头开始写登…...
Claude Code能控制电脑了!开发全程不离终端,全无人值守模式启动
在官方演示中,只甩一个指令过去,AI就自己启动正在开发的应用,自己复现bug,自己修复,自己测试修复效果。 Claude Code上线Computer Use,直接捅破开发效率天花板。 在官方演示中,只甩一个指令过…...
LeetCode 111. Minimum Depth of Binary Tree 题解
LeetCode 111. Minimum Depth of Binary Tree 题解 题目描述 给定一个二叉树,找出其最小深度。 最小深度是从根节点到最近叶子节点的最短路径上的节点数量。 叶子节点 是指没有子节点的节点。 示例 1: 输入:root [3,9,20,null,null,15,7] 输…...
从Hive表平滑迁移到实时湖仓?试试用Apache Paimon的Format Table零成本接入
从Hive表平滑迁移到实时湖仓?Apache Paimon的Format Table零成本接入实战 1. 实时湖仓转型的痛点与破局之道 在传统大数据架构中,Hive作为批处理的核心组件已经服务了无数企业十数年。但随着实时分析需求的爆发式增长,单纯依靠Hive的T1模式越…...
告别osgQt!用osgQOpenGLWidget在Qt6中轻松加载OsgEarth三维地球(附完整代码)
现代Qt6与OsgEarth集成实战:osgQOpenGLWidget替代方案详解 如果你正在使用Qt6开发三维地理可视化应用,却苦于找不到合适的OpenSceneGraph(OSG)集成方案,这篇文章将为你提供一条清晰的迁移路径。随着Qt和OSG版本的迭代,传统的osgQt…...
