C# 类的继承

c++:实验题1 ``根据点的类构造线三角形类,并测试 【输入形式】输入三角形的3个坐标点 【输出形式】三角形的3个坐标点、3边长及周长和面积 /*实验七 类和对象(3)---点、线、三角形*/ //根据点的定义,写出线段和三角形的定义,并通过主程序进行验证 //mypoint.h class myPoint { public: myPoint(); myPoint(double x,double y); double getX(); . 阅读详情



C# 类的继承



1.  定义一个类,描述一个矩形,包含有长、宽两种属性,有一个无参数构造方法,对长宽赋初值为10,8;一个带两个参数方法,对长宽赋值;一个计算面积方法。编写一个测试类,对以上类进行测试,创建一个长方形,定义其长、宽,输出其面积。

定义一个长方体,继承上面的矩形类,新增一个属性:高,新增一个方法:计算长方体体积。创建两个长方体对象测试。


代码如下:

<span style="font-family:SimSun;font-size:18px;">class Rect
    {
        private int l;
        private int w;
        public Rect()
        {
            l = 10; w = 8;
        }
        public Rect(int a, int b)
        {
            l = a; w = b;
        }
        public int getArea()
        {
            int area;
            area=l*w;
            return area;
        }
    }
     class 长方体 : Rect
     {
         private int h;
         public int getTiji()
         {
             return getArea()* h;
         }
         public 长方体(int h)
         {this.h = h;}
         public 长方体(int l, int w, int h):base(l,w)
        //  在子类构造方法中指定调父类带两个参数的构造方法
         {this.h = h;}
     }
    class Test
    {
        static void Main(string[] args)
        {
            长方体 cft1 = new 长方体(4);
            //创建子类对象会  先调用父类构造方法,再调用子类构造方法
            //在子类构造方法中如果没有指定调用父类的哪个构造方法,
             //则调父类默认不带参数的构造方法
            Console.WriteLine("CFT1的底面积是"+cft1.getArea());
            Console.WriteLine("CFT1的体积是" + cft1.getTiji());
            长方体 cft2 = new 长方体(5, 7, 9);
            Console.WriteLine("CFT1的底面积是" + cft2.getArea());
            Console.WriteLine("CFT1的体积是" + cft2.getTiji());    
        }
}</span>



运行结果:



2.  对长方体新增一个方法。求表面积,

要求长方体的表面积,必须要得到长、宽,但长、宽是父类的私有成员,必须通过父类提供的属性或方法获得。


程序代码修改如下:

<span style="font-family:SimSun;font-size:18px;">class Rect

    {

        private int l;

        private int w;

      <span style="color:#FF0000;">  public int W

        {get { return w; }}</span>

        public Rect(){l = 10; w = 8;}

        public Rect(int a, int b){l = a; w = b;}

        public int getArea()

        {

            int area;

            area=l*w;

            return area;

        }

       <span style="color:#FF0000;"> public int getL(){return l;}
</span>
    }

    class 长方体 : Rect

    {

        int h;

        public int gettiji()

        {

           // return l * w* h;   错:l,w在父类中是私有的,在派生类中不能直接使用

            return getArea() * h;

        }

        public 长方体(int h){this.h = h;}

        public 长方体(int l, int w, int h):base(l,w)  

            //在子类构造方法中通过base 指明调用父类带两个参数的构造方法

        {this.h = h;}

        <span style="color:#FF0000;">public int 表面积(){return 2 * (getL() * h + getL() * W + W * h);}</span>

    }

    class Test

    {

        static void Main(string[] args)

        {

            //Rect rect1 = new Rect();

            //Rect rect2 = new Rect(6, 8);

            //Console.WriteLine(rect1.getArea());

            //Console.WriteLine(rect2.getArea());

            长方体 cft = new 长方体(5);

            //子类构造方法执行: 先父类构造方法,再子类构造方法

            //如果子类构造方法中没有指明要调用父类某构造方法,则调用父类中无参数的构造方法

            Console.WriteLine(" 此长方体的底面积是:" + cft.getArea());

            Console.WriteLine(" 此长方体的体积是:" + cft.gettiji());

            长方体 cft2 = new 长方体(3, 5, 7);

            Console.WriteLine(" 此长方体的底面积是:" + cft2.getArea());

            Console.WriteLine(" 此长方体的体积是:" + cft2.gettiji());

            <span style="color:#FF0000;">Console.WriteLine(" 此长方体的表面积是:" + cft2.表面积());</span>

        }

    }</span>


3.定义一个人类people,包括属性:name;包括方法:

      Public void 吃饭()

         功能是输出“  某某人要吃饭”

     Pulbic  void 工作()

         功能是输出“   某某人要工作”

(1)根据人类,派生一个学生类student,增加属性:学校、学号;重写工作方法(学生的工作是学习)。

(2)根据人类,派生一个工人类,增加属性:单位、工龄;重写工作方法(工人的工作是……自己想吧)。

所有类定义必要的方法(可以是构造方法,也可以是一般方法)对相应的属性赋值。

(4)编写主函数分别对上述3类创建对象进行测试。

代码如下:

<span style="font-family:SimSun;font-size:18px;">namespace 多态与person
{
    class person
    {
        private string name;

        public string Name
        {
            get { return name; }
            set { name = value; }
        }
        public void 吃饭()
        {
             Console.WriteLine(this.name + "要吃饭");
        }
         
        public virtual void 工作()
        { 
           Console.WriteLine( this.name + "要工作");
        }
    }
    class student :person
    {
        private string 学校;

        public string 学校1
        {
            get { return 学校; }
            set { 学校 = value; }
        }
        private string 学号;

        public string 学号1
        {
            get { return 学号; }
            set { 学号 = value; }
        }
        public override void 工作()
        {
            Console.WriteLine("{0}  {1}  {2} 要学习",this.学校,this.学号,this.Name);
        }
    }
    class worker :person
    {
        private string 单位;

        public string 单位1
        {
            get { return 单位; }
            set { 单位 = value; }
        }
        private int 工龄;

        public int 工龄1
        {
            get { return 工龄; }
            set { 工龄 = value; }
        }
        public override void 工作()
        {
            Console.WriteLine("{0}  {1}  {2} 要开发软件",this.单位,this.Name,this.工龄);
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            person p = new person();
            p.Name = "二狗子";
            p.吃饭();
            p.工作();
            student s = new student();
            s.Name = p.Name;
            s.学号1 = "20122018000000";
            s.学校1 = "XX名牌大学";
            s.工作();
            worker w = new worker();
            w.Name = p.Name;
            w.单位1 = "XXX工作室";
            w.工龄1 = 3;
            w.工作();

            Console.ReadLine();
        }
    }
}</span>



运行结果:













求3个长方体体积(类实现) C++ ,VS2010平台编辑,下载后可以直接使用,用类实现求3个长方体体积 立即下载

相关推荐

【讯飞星火大模型AI】SpringBoot整合星火API:从零构建智能数据分析助手

本文详细介绍了如何使用SpringBoot框架整合讯飞星火大模型API,从零构建一个智能数据分析助手。通过清晰的步骤,指导开发者完成API密钥申请、项目搭建、SDK集成与核心代码编写,实现用户通过自然语言指令和CSV数据,即可自动获得ECharts图表代码与专业数据分析结论,极大降低数据分析与可视化的门槛。

neovim7hacker的博客 275

C#------矩形类派生长方体类

C#------矩形类派生长方体类。

自律遇到更好的自己!! 290

戴尔笔记本装Ubuntu 20.04,别急着分区!先搞定这个BIOS设置(Intel RST避坑指南)

本文详细介绍了在戴尔笔记本上安装Ubuntu 20.04时遇到的Intel RST技术兼容性问题及解决方案。通过安全切换至AHCI模式,避免安装过程中找不到硬盘的常见问题,并提供双系统分区策略和安装后的优化建议,确保Ubuntu与Windows 10双系统稳定运行。

weixin_31315567的博客 268

C# 属性

封装性 含义 1. 字段和方法放到一个类中 2. 类中字段私有化,类中方法公开化 为私有化的添加一组方法 获取字段值的方法 Get***() 设置字段值的方法 Set***() 一个私有字段对应一个属性,属性其实有两个方法 只是在 写法简洁了一些。 ...

475

如何使用Dify 搭建一个用自然语言查询数据库的 Agent?

这样就会发布完毕。

AI Agent 首席体验官 1698

综合能源系统多时间尺度优化调度!诸多创新点让你抓住审稿人的心!

主要介绍综合能源系统的设备组成结构,并针对屋顶光伏系统、冷-热-电联供系统中的燃气轮机、燃气锅炉、光伏溴化锂制冷机、卡琳娜余热发电、中央空调系统,以及外网交互系统的配电网与天然气管网交互关系进行数学建模。1) 源-荷-储协同调度:研究屋顶光伏、燃气轮机、燃气锅炉等源侧设备,中央空调、电-热-冷负荷、可平移电负荷、可削减温控负荷等负荷侧资源,以及储能系统、电动汽车等储能侧设备的协同调度,以提高风光消纳能力,满足社会能源需求。通过电转热、电转冷、电转气等多能耦合方式,可进一步促进可再生能源的应用与发展。

weixin_48747334的博客 1488

C# Day9 作业

注意:请大家将前面扩展题的答案上传至FTP,“扩展题”文件夹, 现场班直接上传即可;远程班小伙伴们的话,我再联系下助教老师。 ----------------------------------------------------------------- 作业1:(必做题) 创建一个角色类,Role.cs,描述角色的基本信息 ...

376

告别地图偏移!手把手教你用MapOnline V1.2在ArcGIS里加载无偏谷歌影像和历史影像

本文详细介绍了如何使用MapOnline V1.2插件在ArcGIS中加载无偏谷歌影像和历史影像,解决GIS工程师长期面临的地图偏移问题。通过三步安装配置、无偏影像加载和时空分析功能,提升地理信息数据的精确度和工作效率,特别适用于城市规划、环境监测等场景。

weixin_29252171的博客 232

C语言 计算长方体的表面积和体积

C语言 计算长方体的表面积和体积

p110q的博客 9220

Python爬虫实战:微信小程序内容采集的全面指南

在移动互联网时代,微信小程序已成为企业和个人提供服务的重要渠道。小程序中包含了大量有价值的信息,但微信官方并未提供便捷的数据获取接口。本文将详细介绍如何使用Python爬虫技术采集微信小程序内容,包括最新技术方案、完整代码实现以及应对各种反爬机制的策略。小程序运行在微信封闭环境中,无法直接访问数据通信主要通过HTTPS加密传输内容动态加载,依赖JavaScript渲染微信有严格的反爬机制。

2201_76125261的博客 3115

YOLO26涨点改进 | 全网独家,注意力创新改进篇 | Arxiv2025 | YOLO26引入MSLA多尺度线性注意力模块,高效提取多尺度特征和建模长程依赖,含多种创新改进,助力有效涨点

本文提出了一种多尺度线性注意力模块(MSLA)来优化YOLO26模型。MSLA通过并行使用不同尺寸的深度可分离卷积(3×3至9×9)提取多尺度特征,并结合线性注意力机制高效建模全局依赖关系。该模块显著提升了模型对多尺度目标的检测能力,同时保持了轻量化特性。实验表明,MSLA能有效增强小目标检测和复杂场景下的分割精度。文章详细介绍了MSLA的网络结构、核心优势及实现代码,并提供了两种集成MSLA的YOLO26改进方案,为实时目标检测任务提供了高效解决方案。

Ai缝合怪、助力小伙伴高效发论文 292

C#中类的继承

C#中类的继承 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 开发工具与关键技术:C# 作者:吴锦华 撰写时间:2021/10/18 一、继承的概念 继承允许我们根据一个类来定义另一个类,这使得创建和维护应用程序变得更容 易。同时也有利于重用代码和节省开发时间。当创建一个类时,我们不需要完全重新编写新的数据成员和成员函数,只需要设计一个新的 类,继承了已有的类的成员即可。

QWD8596的博客 6034

行测测评——矩阵、圆形、环形三角图形数列推理解题技巧

写在前面:各大公司的测评做的让人眼花缭乱,很多题型都是第一次见,比如逻辑关系、信息推理,最难的要属找规律的数字推理了。根据B站UP主刘文超老师的课程,记录一下解题技巧。感谢UP主的无私奉献,原地址连接:https://www.bilibili.com/video/BV1it411M7o2?t=528&p=7 解题技巧: 从图形的上下、左右、交叉 角度进行尝试求解 基本法则是“加、减、乘、除、倍数、次方”六种形态。 一、有心数阵 解题技巧:周边数字通过某种运算得到中间数字 1.周边数..

涵盖了计算机专业基础知识、数学建模相关实践、复杂网络论文研究、LeetCode算法刷题经验、C语言开发经验、前端Vue、React框架开发实战相关知识 8642

C#类的继承

类的继承概念构造方法的执行过程隐藏基类方法装箱与拆装 概念 程序中,继承描述的是事物之间的所属关系,通过继承可以使多种事物之间形成一种关系体系。 在C#中类的继承指在一个现有类的基础上去构建一个新类 (子类),子类会自动拥有父类所有可继承的属性和方法。(可继承:所有非构造方法和非构造发方法的所有成员) 例子 实例①: static void Main(string[] args)...

Make a little progress every day! 2173

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

C#中类的继承的书写

c#继承使用特性 1.父类可以被多个子类继承 class Father: {... } class Son1:Father{ ...} class Son2:Father { ...} 2.父子的关系是相对的,可以树状继承 class GrandFather: { ... } class Father:GrandFather { ...} class Son:Father { ...} cla...

Firstangle的博客 829

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

C# 关于类的继承的总结

C#类的继承 1、父类和子类(基类和派生类) 在类的继承中,被继承的类叫做基类(与派生类并提)或父类(与子类并提),继承的类叫做派生类或子类。子类继承父类的属性、方法等,但子类没有继承父类的私有(private)字段。 public class Person { public string _name; private int _age; public void SayHello() { Console.WriteLine("大家好,我是{0},我是

Wilhelm的博客 4641

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

C#类和继承

好的,现在“狗”类继承了“动物”类的“Name”、“Age”、“Eat”和“Sleep”方法,还添加了一个新的方法“Bark”。想象一下,有一个矩形代表“动物”类,里面写着“Name”、“Age”、“Eat()”和“Sleep()”。假设我们有一个“动物”类,它有一些基本的属性,比如“姓名”和“年龄”,还有一些方法,比如“吃”和“睡”。为了进一步验证我的理解,再写一个“猫”类,继承自“动物”类,并添加一个“Meow”方法。然后,另一个矩形代表“狗”类,它连接着“动物”类,里面写着“Bark()”。

weixin_44484301的博客 940

C#中类的继承

C#中类的继承

小猪的Blog 2117
上一篇: C# 类的定义及构造函数的重载
下一篇: 实验楼Linux学习笔记(一)之基本概念及操作
橘子局
博客等级 码龄14年 70粉丝 84原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值