C#forUnity快速入门(连载6)-C#继承性-创新互联

 C# for Unity 编程语言快速入门教程(连载6)---C#OOP编程之继承性

铁门关ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:18982081108(备注:SSL证书合作)期待与您的合作!

  C#的OOP编程之继承性,其本质就是通过继承让子类减少重复代码的编写,达到优化代码的作用。继承具体指“字段”与“方法”的继承,笔者梳理本阶段的知识点如下所示。

1: 概念(基类、派生类)

   生活中有"龙生龙,凤生凤,老鼠天生会打洞",这说的是日常生活中的“继承"现象。类似情形“国民老公--"王思聪"生来就是超级富二代,而一般农民工的子女则相对穷好几个数量级。

   我们C#语言中的继承,通过":"(冒号)来定义继承关系。(类似Java语言的extend关键字)

2: 使用base,this关键字

   base 关键字代表父类对象,this关键字代表本类对象(this可以默认不写)。

3: 方法覆盖
  使用 new 关键字显示声明发生方法覆盖。

4: 继承关系中构造函数的应用.
  4.1>先执行父类的构造方法,再执行子类构造方法。
  4.2>作为良好的编程习惯:
       派生类的构造函数在执行初始化时,最好调用基类的构造函数。如果不在派生类显示调用一个基类构造函数,编译器会自动插入对基类的默认构造函数的调用,然后才调用执行派生类构造函数的代码。

5: 类的赋值
    子类对象可以赋值给父类对象,但使用中只能使用父类定义的方法。

 为了让初学者更好的学会继承的理论,现提供如下编程题目,供练习使用。

1: 已知交通工具类定义如下。
class Vehicle{
  private int _length;    //长度
  private int _width;     //宽度
  public void Drive(){}; //驾驶方法
}
要求:(1)实现这个类;(2)定义并实现一个小车类car,是它的派生类,小车本身的私有属性有载人数,小车的方法有init(设置车轮数、重量和载人数),get passenger(获取载人数),print(打印车轮数、重量和载人数)。

2: 编写一个学生和教师的数据输入和显示程序,学生数据有编号、姓名、班号和成绩,教师数据有编号、姓名、职称和部门。
  要求将编号、姓名输入和显示设计成一个类person,并作为学生数据操作类student和教师数据操作类teacher的基类。

3: 定义如下类,编程完成要求的功能。

  1) 定义一个名称为 Vehicle(车辆)类,
      字段定义如下:
      public string clour="while";   //颜色字段
      protected float speed;          //速度字段
      方法如下:
      public void accelerate(){.....}; //加速方法

  2) 定义一个名称为 Car (机动车)类
       字段如下:
      private int price;              //价格字段
      方法如下:
      public void decelerate(){.....}; //减速方法

  3) 编程要求:
     3.1) 把Vehicle 作为父类,Car 作为子类。
     3.2) 在Car 类的main方法中调用显示如下字段: clour, speed, price
      3.3) 在Car 类的main方法中调用显示方法: accelerate(), decelerate().
     3.4) 在Car 类中定义新的字段
            string clour="red";   //颜色字段
             再次运行Car类,记下字段 clour 的运行结果有什么变化? 说明这种现象的原因?
     3.5) 在Car 类中定义新的方法
           public void accelerate(....); //加速方法
                再次运行Car类,记下方法 accelerate()的运行结果有什么变化? 说明这种现象的原因?

      3.6) 在Car 类的decelerate() 中使用this 关键字调用本类的accelerate()方法。
              在Car 类的decelerate() 中使用base关键字调用父类的accelerate()方法。
             运行程序,解释输出结果。

      3.7) 分别在Vehicle 类,Car类中定义构造方法。
            再次运行程序,解释输出结果。

      3.8) 删除Vehicle 原无参构造函数,为 Vehicle 类定义有参构造方法 Vehicle(float mySpeed) ,
               作用:在构造函数中给 speed 字段赋值。 请问如何处理,使得子类代码可以正常运行,
               解释此现象。

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。

网页标题:C#forUnity快速入门(连载6)-C#继承性-创新互联
标题URL:https://www.cdcxhl.com/article26/csoocg.html

成都网站建设公司_创新互联,为您提供建站公司云服务器微信小程序网站导航面包屑导航搜索引擎优化

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

成都网页设计公司