位置: 编程技术 - 正文

unity3d---属性封装和继承(unity dem)

编辑:rootadmin
面向对象技术的三个核心概念 : 封装,继承,多态 昨天学习了方法封装,今天就来说说第二种封装——属性封装 属性是c#引入的一种语言成分,只有很少的语言支持属性。通过对属性的读和写来保护类中的域。第一种方法体身也是一种好的方式,但用属性来实现封装会更方便。 下面有个实例:class Person2 { private string name; private int age; public string Name { set { name = value; } get { return name; } } public int Age { set { age = value; } get { return age; } } } 通过上面的例子,我们可以看到如何通过属性来实现封装。属性具有两种操作get和set。Get用来返回属性域的&#;。Set通过value这个变量来给属性域赋&#;。 使用属性封装的好处是可以用一条语句操作内部数据。 接下来学习的是继承 “继承”是面向对象软件技术当中的一个概念。如果一个类B继承自另一个类A,就把这个B称为"A的子类",而把A称为"B的父类"。继承可以使得子类具有父类的各种属性和方法,而不需要再次编写相同的代码。在令子类继承父类的同时,可以重新定义某些属性,并重写某些方法,即覆盖父类的原有属性和方法,使其获得与父类不同的功能。 子类的声明: 子类声明:父类{子类体} 子类可以使用父类的protected和public可见的变量和方法。 C#中子类只能继承一个父类,但一个基类(父类)可以有多个直接派生类(子类)。继承是可以传递的。基类(父类)也就是父类,也叫超类,派生类(子类)则是子类。 class A {//父类 public void Sum(int i,int j) { int sum = i &#; j; Console.WriteLine("I am A ,my sum ={0}",sum); } } class B : A {//子类 public void Minus(int i,int j) { int minus = i - j; Console.WriteLine("I am B ,my minus ={0}", minus); this.Sum(3, 4); } } class Test1 { static void Main(string[] args) { B b = new B(); b.Minus(3, 4); Console.Read(); } }结果:I am B ,my minus=-1 I am A ,my sum = 7 当基类(父类)Sum()方法是私有时,派生类(子类)还会继承该方法吗?经过测试,没有在B类找到该方法,那么是不是它就没有被继承呢?其实不是的,私有成员其实已经被继承了,但是它们却不可以被访问,因为私有成员只能被声明它们的类或结构体中才可访问,所以看上去像是没有被继承。 能够阻止某个类被其他类继承吗?答案是可以的,C#提供了一个sealed 修饰符,此修饰符会阻止其他类从该类继承。 sealed class A { int test; public void Sum(int i,int j) { int sum = i &#; j; Console.WriteLine("I am A ,my sum ={0}",sum); } } class B : A { public void Minus(int i,int j) { int minus = i - j; Console.WriteLine("I am B ,my minus ={0}", minus); this.Sum(3, 4); //编译器会报错 } } 派生类(子类)(子类)隐式获得基类(父类)的除构造函数和析构函数以外的所有成员。 当基类(父类)没有构造函数,派生类(子类)也没有构造函数时,派生类(子类)新曾成员的初始化工作由其他公有函数来完成。 如果只有派生类(子类)定义构造函数时,只需构造派生类(子类)对象即可。对象的基类(父类)部分使用默认构造函数来自动创建。 当基类(父类)和派生类(子类)都定义有构造函数时,那么执行顺序会怎样呢? 如果基类(父类)中是没有参数的构造函数,那么他可以隐式的被派生类(子类)执行,也就是说,派生类(子类)根本不需要包含构造函数如果基类(父类)中是没有参数的构造函数,在派生类(子类)中可以自定义有参数的构造函数 如果基类定义了带有参数的构造函数,那么此构造函数必须被执行,且在派生类中实现该构造函数,此时我们可以使用base关键字。 如果派生类的基类也是派生类,则每个派生类只需负责其直接基类的构造,不负责间接基类的构造,并且其执行构造函数的顺序是从最上面的基类开始的,直到最后一个派生类结束。 更多精彩请关注:

推荐整理分享unity3d---属性封装和继承(unity dem),希望有所帮助,仅作参考,欢迎阅读内容。

unity3d---属性封装和继承(unity dem)

文章相关热门搜索词:unity 属性注入,unity封装,unity 属性,unity封装,unity模型属性,unity封面,unity模型属性,unity 属性,内容如对您有帮助,希望把文章链接给更多的朋友!

unity游戏开发之自定义事件测试demo 上文中写了unity游戏开发自定义消息事件点击打开链接下面是测试demo第一,打卡unity,新建一个场景,然后新建一个空的游戏对象,如图中的EventObj第二

unity之声音播放

抽象类和接口 今天我复习了一下抽象类和接口.1.抽象类的概念在C#中使用关键字abstract来定义抽象类和抽象方法。不能初始化的类被叫做抽象类,它们只提供部分实现

标签: unity dem

本文链接地址:https://www.jiuchutong.com/biancheng/377304.html 转载请保留说明!

上一篇:多态,封装,接口,封装,继承,数据库连接和项目模块(多态和封装的区别)

下一篇:unity游戏开发之自定义事件测试demo(unity5.x游戏开发指南)

  • SQL注入全过程深入分析(sql注入的原理和步骤)

    直接通过Google浏览器就能去除。

    点击登录,返回的信息如下:

    Conversion failed when converting the nvarchar value 'master' to data type int.

    数据库名称“master”通过异常被显示出来!依次改变上面SQL语句中的序号,

    就能得到服务器上所有数据库的名称。

    接着,输入信息如下:

    得到返回信息如下:

    Conversion failed when converting the nvarchar value 'spt_fallback_db' to data type int.

    我们得到了master数据库中的第一张表名:“spt_fallback_db”,

    同上,依次改变序号,可得到该库全部表名。

    现在我们以“spt_fallback_db”表为例,尝试获取该表中所有的字段名。在输入框中输入以下代码:

    于是,得到错误提示如下:

    "Conversion failed when converting the nvarchar value 'xserver_name' to data type int." class="img-responsive" alt="SQL注入全过程深入分析(sql注入的原理和步骤)">

    SQL注入全过程深入分析(sql注入的原理和步骤)

  • win8任务栏图标叠加显示3个设置技巧(图文)(win8任务栏图标太大了)

    win8任务栏图标叠加显示3个设置技巧(图文)(win8任务栏图标太大了)

  • Android5.0网络之socket接口的改变(android系统联网)

    Android5.0网络之socket接口的改变(android系统联网)

  • 金税四期不会对个人产生影响
  • 税法基本原则是什么意思
  • 所得税费用的计提
  • 收款金额比开票金额少是对方扣的手续费
  • 企业卖车需要交印花税吗
  • 滴滴出行发票可以抵扣进项税吗
  • 进料加工委托 加工费发票怎么开
  • 销售免税的有机食品
  • 法院案件受理费计算器
  • 货款和发票金额不符
  • 电子承兑汇票没开通能接受吗
  • 库存半成品属于什么会计科目
  • 出口押汇与打包押汇区别
  • 参加公司比赛后的感想
  • 房地产开发企业预收款预缴增值税
  • 小企业税金及附加会计分录
  • 没进项发票要交多少税
  • 低价销售代替非正常损失避免转出进项税?
  • 一般纳税人的主表
  • 技术转让所得减去成本吗
  • 城市垃圾处理费怎么申报
  • 资源税如何进行账务处理
  • 财务负责人必须是本公司员工吗
  • 开票含税和不含税怎么切换视频讲解
  • 金税盘服务费计入什么会计科目
  • 增值税申报错误已经扣税怎么处理
  • 1697509246
  • 专家评审费是否需要发票
  • 进口关税和增值税
  • 苹果如何保护
  • bios相关概念
  • 免抵退税的账务处理
  • 不动产增值税总结
  • npm命令不存在
  • redistemplate获取value
  • 设备维修产生的人工费怎么开发票
  • php json_encode与json_decode详解及实例
  • spring boot s
  • 独立核算的分公司可以享受小微企业吗
  • 结转坏账准备是什么意思
  • node.js最新版本
  • 短期投资属于短期资产吗
  • 给员工分红是否交税
  • 销售劳务和销售货物的区别
  • 社保缴费基数应该怎么算
  • 期末留抵退税计算公式
  • 损益类科目都是当期损益吗
  • 付款退回怎么做账
  • 国有控股企业和国有参股企业的区别
  • 事业单位的财政拨款怎么做账
  • 独立核算好处
  • 原材料采购未入库会计分录
  • 代理记账需要什么章
  • 公司员工餐费如何做账
  • 一般纳税人会计分录
  • 投资收益期末余额在借方还是贷方
  • 如何证明自己是中国人
  • 如何对会计感兴趣
  • java连接mysql数据库教程
  • mysql保存命令
  • freebsd ports安装
  • 创建svn库
  • 进入pe系统后c盘变成了e盘
  • 笔记本电脑自动断开
  • linux系统中安装软件
  • mac迁移助理是什么意思啊
  • 调整linux时间
  • linux双网卡绑定原理
  • 游戏引擎官方平台
  • jquery链式操作原理
  • nodejs怎么实现多线程
  • 批处理之家官网
  • linux一些常用操作命令 (不定时更新)
  • jquery获取浏览器宽度
  • 河南省地方税务局房产税管理办法
  • 绿化养护的增值税是多少
  • 工会经费网上怎么申报
  • 河南税务机关
  • 房产税纳税义务时间
  • 三门峡哪个小区是原火葬场
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设