c# 抽象类

c#抽象类

namespace demo1
{/// <summary>/// 抽象类是作为一种抽象的概念,是基类/// 在抽象类中声明方法,加上abstract就是抽象方法。所有有抽象类派生出来的都要重载实现抽象方法/// 抽象方法不可以使用virtual、static、和prevate修饰/// 抽象方法提供一个声明,不提供具体实现/// 抽象类不能直接实例化/// 抽象类不能被密封/// 抽象类可以包含抽象成员,非抽象类不可以/// </summary>    //定义一个基类shapepublic abstract class Shape{protected string Color;// protected 可以允许派生类访问它的基类成员public Shape(string color) //构造函数{this.Color = color;}public string GetColor(){ return this.Color; }public abstract double GetArea();}//定义一个cirle类public class Cirle : Shape{//prevate 只有在同一个类中可以访问private double Radius; public Cirle(string color,double radius):base(color){this.Color=color;this.Radius = radius;}public override double GetArea() //继承基类必须重载抽象方法{return System.Math.PI * this.Radius*this.Radius;}}internal class Progrom{static void Main(string[] args){Cirle a=new Cirle("黄色",1);double b=a.GetArea();Console.WriteLine(b);}}}

c#密封类

namespace demo1
{/// <summary>/// 密封类:如果所有类都可以被继承,那么很容易导致继承的滥用,进而使类的层次结构体系变得十分复杂,这样会使开发人员对类的理解和使用变得十分困难。为了避免滥用继承,C#中提出了密封类的概念。/// 密封类可以用来限制扩展性,如果密封了某个类,则其他类不能从该类继承;/// 如果密封了某个成员,则派生类不能重写该成员的实现/// /// </summary>internal class Progrom{public class Myclass1 { public virtual void Write(){Console.WriteLine("class1 这是一个未密封的方法");//这是一个虚函数,可以被重写}}public class Myclass2:Myclass1{//继承之后可以对虚方法进行重写public sealed override void Write(){Console.WriteLine("这是myclass2中密封的方法");}}public class Myclass3 : Myclass2{//继承之后可以对虚方法进行重写//public  override void Write()//{///这是密封的,不可以在进行重写//}}static void Main(string[] args){Myclass1 a = new Myclass1();a.Write();Myclass2 b = new Myclass2();b.Write();  }}}

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

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

相关文章

谷歌提出AGI的6大原则,和5大能力等级

随着ChatGPT等大模型的出现,AGI概念正在从哲学层面快速转向实际应用落地&#xff0c;并且ChatGPT已经展示出了初级AGI的功能&#xff08;如AutoGPT&#xff09;,有不少专家认为&#xff0c;AGI时代可能在10年内到来。 因此&#xff0c;需要一个明确的技术框架来讨论和衡量不同…

Linux下基本操作命令

一、基础命令 1. pwd 命令 pwd命令用于显示当前所在的工作目录的全路径名称。该命令无需任何参数&#xff0c;只需在终端窗口中输入 pwd 命令即可使用。 2. cd 命令 cd命令用于更改当前工作目录。该命令需要一个参数&#xff1a;目标目录名称。例如&#xff0c;若要进入 Do…

WPF UI样式介绍

WPF&#xff08;Windows Presentation Foundation&#xff09;是微软的一个用于创建桌面客户端应用程序的UI框架。WPF使用XAML&#xff08;可扩展应用程序标记语言&#xff09;作为其界面设计语言&#xff0c;这使得开发者能够以声明性方式定义UI元素和布局。 在WPF中&#xf…

Linux学习笔记3-GPIO(1)

学习单片机时最开始也是从GPIO开始的&#xff0c;Linux的主芯片I.MX6UL有124个GPIO&#xff0c;当然很多是复用的&#xff0c;与之对比&#xff0c;STM32F407系列的单片机GPIO口是112个。回顾之前单片机的学习&#xff0c;大部分的GPIO功能是通过HAL库函数调用的&#xff0c;例…

腾讯云标准型SA4服务器AMD处理器性能测评

腾讯云服务器标准型SA4实例CPU采用AMD处理器&#xff0c;新一代腾讯云自研星星海双路服务器&#xff0c;搭配AMD EPYC Genoa处理器&#xff0c;内存采用最新 DDR5&#xff0c;默认网络优化&#xff0c;最高内网收发能力达4500万pps&#xff0c;最高内网带宽可支持100Gbps。阿腾…

IP-guard flexpaper远程命令执行漏洞复现 [附POC]

文章目录 IP-guard flexpaper RCE漏洞复现 [附POC]0x01 前言0x02 漏洞描述0x03 影响版本0x04 漏洞环境0x05 漏洞复现1.访问漏洞环境2.构造POC3.复现 0x06 修复建议 IP-guard flexpaper RCE漏洞复现 [附POC] 0x01 前言 免责声明&#xff1a;请勿利用文章内的相关技术从事非法测…

acwing算法基础之搜索与图论--匈牙利算法求二分图的最大匹配数

目录 1 基础知识2 模板3 工程化 1 基础知识 二分图中的最大匹配数&#xff1a;从二分图中选择一些边&#xff08;这些边连接集合A和集合B&#xff0c;集合A中结点数目为n1&#xff0c;集合B中结点数目为n2&#xff09;&#xff0c;设为集合S&#xff0c;其中任意两条边不共用一…

Django框架FAQ

文章目录 问题1:Django数据库恢复问题2:null和blank的区别3.报错 django.db.utils.IntegrityError: (1062, “Duplicate entry ‘‘ for key ‘mobile‘“)4.报错 Refused to display ‘url‘ in a frame because it set ‘X-Frame-Options‘ to deny5.报错 RuntimeError: cryp…

NovelD: A Simple yet Effective Exploration Criterion论文笔记

NovelD:一种简单而有效的探索准则 1、Motivation 针对稀疏奖励环境下的智能体探索问题&#xff0c;许多工作中采用各种内在奖励(Intrinsic Reward)设计来指导困难探索环境中的探索 &#xff0c;例如&#xff1a; ICM&#xff1a;基于前向动力学模型的好奇心驱动探索RND&…

CCF编程能力等级认证GESP—C++1级—样题1

CCF编程能力等级认证GESP—C1级—样题1 单选题&#xff08;每题 2 分&#xff0c;共 30 分&#xff09;判断题&#xff08;每题 2 分&#xff0c;共 20 分&#xff09;编程题 (每题 25 分&#xff0c;共 50 分)第一题第二题 参考答案单选题判断题编程题1编程题2 单选题&#xf…

Linux文件系统

1.基础IO &#xff08;1&#xff09;文件操作 在C语言中&#xff0c;用来进行文件操作的函数有很多&#xff0c;比如&#xff1a; 所谓文件操作&#xff0c;简而言之就是通过语言层面向系统层面进行函数调用&#xff0c;命令操作系统为在磁盘上为其创建文件&#xff0c;那么这些…

企业级源代码安全审计咨询案例

代码审计网专家服务团队&#xff0c;除了提供网络、现场的源代码审计服务外&#xff0c;为了帮助企业建立代码审计服务平台、代码扫描基线、安全和质量编码规范、制度流程&#xff0c;打通企业研发的各个管理环节&#xff0c;实现自动化等企业级源代码安全审计咨询服务。 企业要…

react Antd3以下实现年份选择器 YearPicker

项目antd版本低&#xff0c;没有直接可使用的年份选择器&#xff0c;参考此篇&#xff08;使用antd实现年份选择器控件 - 掘金&#xff09; 一开始在state里设置了time&#xff1a; this.state {isopen: false,time: null } 在类似onChange事件里this.setState({time: valu…

一文搞懂Transformer

近期Transformer系列模型的出现&#xff0c;增加了CV领域的多样性。但是Transformer这一不同领域的模型对学习者来说需要一个细致的学习过程.下面就是本菜鸟总结学习路线。 Transformer是基于attention机制。而attention机制又在Encoder、Decode中。本篇博客将从Attention->…

短视频短剧小程序系统:创新的内容传播与互动体验

随着移动互联网的普及和用户消费习惯的改变&#xff0c;短视频短剧小程序系统逐渐成为内容传播和互动体验的新宠。这种小程序系统以短视频和短剧为主要内容形式&#xff0c;通过创新的内容传播和互动体验&#xff0c;为用户提供了一种全新的娱乐和社交方式。本文将详细介绍短视…

C# Onnx 轻量实时的M-LSD直线检测

目录 介绍 效果 效果1 效果2 效果3 效果4 模型信息 项目 代码 下载 其他 介绍 github地址&#xff1a;https://github.com/navervision/mlsd M-LSD: Towards Light-weight and Real-time Line Segment Detection Official Tensorflow implementation of "M-…

使用 maven 自动将源码打包并发布

maven-source-plugin 作用&#xff1a; 在构建过程中将项目的源代码进行打包&#xff0c;并作为一个jar文件附着在主构件上&#xff0c;在 pom.xml 中添加如下内容&#xff0c;使用 maven 生成 jar 的同时生成 sources 包 在 pom 中配置如下&#xff1a; <build><p…

Hive 查询优化

Hive 查询优化 -- 本地 set mapreduce.framework.namelocal; set hive.exec.mode.local.autotrue; set mapperd.job.trackerlocal; -- yarn set mapreduce.framework.nameyarn; set hive.exec.mode.local.autofalse; set mapperd.job.trackeryarn-- 向量模式 set hive.vectori…

最小二乘法及参数辨识

文章目录 一、最小二乘法1.1 定义1.2 SISO系统运用最小二乘估计进行辨识1.3 几何解释1.4 最小二乘法性质 二、加权最小二乘法三、递推最小二乘法四、增广最小二乘法 一、最小二乘法 1.1 定义 1974年高斯提出的最小二乘法的基本原理是未知量的最可能值是使各项实际观测值和计算…

[数据结构]—带头双向循环链表——超详解

&#x1f493;作者简介&#x1f389;&#xff1a;在校大二迷茫大学生 &#x1f496;个人主页&#x1f389;&#xff1a;小李很执着 &#x1f497;系列专栏&#x1f389;&#xff1a;数据结构 每日分享✨&#xff1a;旅行是为了迷路&#xff0c;迷路是为了遇上美好❣️❣️❣️ …