C#面向对象程序设计课程实验五:实验名称:C#面向对象技术

  • 实验内容:C#面向对象技术
  • 一、 实验目的及要求
  • 二、实验环境
  • 三、实验内容与步骤
  • 3.1、实验内容:测试类,实现多态
  • 3.2、实验步骤
    • 3.2.1、实验程序
    • 3.2.2、实验运行结果
  • 3.3、实验内容:创建一个 Vehicle 类,并将它声明为抽象类
  • 3.4、实验步骤
    • 3.4.1、实验程序
    • 3.4.2、实验运行结果
  • 四、实验总结

实验内容:C#面向对象技术

一、 实验目的及要求

  • (1)掌握类的继承特性;
  • (2)学会使用 C#实现类的继承性;
  • (3) 理解类的多态特性;
  • (4)学会使用 C#的方法重写;

二、实验环境

Microsoft Visual Studio 2008

三、实验内容与步骤

3.1、实验内容:测试类,实现多态

实验内容:测试类,实现多态的内容如下所示

定义一个名为 Vehicles 的基类,代表交通工具。该类中应包含 string 类型的属性 Brand 表示商标,Color 表示颜色。还应包含 Run(行驶,在控制台显示“我已经开动了”)和虚 方法 ShowInfo(显示信息,在控制台显示商标和颜色),并编写构造方法初始化其属性。 编写 Car(小汽车)类继承于 Vehicles 类,增加 int 型属性 Seats(座位),还应重写成员方法 ShowInfo(在控制台显示小汽车的信息),并编写构造方法。编写 Truck(卡车)类继承于 Vehicles 类,增加 float 型成员属性 Load(重载),还应重写成员方法 ShowInfo(在控制台 显示卡车的信息),并编写构造方法。在 Main 方法中测试以上各类,实现多态。

3.2、实验步骤

3.2.1、实验程序

1、 实验的程序如下

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;namespace 实验五_1_
{class Vehicles{private string Brand;            //字段private string Color;public Vehicles(string brand, string color)     //构造函数{Brand = brand;Color = color;}public Vehicles() {}public void Run(){Console.WriteLine("我已经开动了");}public virtual void ShowInfo()   //虚方法{Console.WriteLine("商标: {0},颜色:  {1}", Brand, Color);}}class Car : Vehicles          {private int Seats;public Car(int seats){Seats = seats;}public override void ShowInfo()        //重载虚方法{Console.WriteLine("座位: {0}", Seats);}}class Truck : Vehicles{private float Load;public Truck(float load){Load = load;}public override void ShowInfo(){Console.WriteLine("载重: {0}顿", Load);}}class Program{static void Main(string[] args){Vehicles car = new Vehicles("奔驰", "红色");Vehicles truck = new Vehicles("东风", "蓝色");Car carSeat = new Car(4);Truck truckLoad = new Truck(2);car.ShowInfo();truck.ShowInfo();carSeat.ShowInfo();truckLoad.ShowInfo();Console.ReadLine();}}
}

3.2.2、实验运行结果

2、 实验的运行结果如下:

3.3、实验内容:创建一个 Vehicle 类,并将它声明为抽象类

实验内容:创建一个 Vehicle 类,并将它声明为抽象类如下所示

创建一个 Vehicle 类,并将它声明为抽象类。在 Vehicle 类中声明一个 NumOfWheels 方法,使它返回一个字符串值。创建两个类 Car 和 Motorbike 从 Vehicle 类继承,并在这 两个类中实现 NumOfWheels 方法。在 Car 类中,应当显示“四轮车”信息,而在 Motorbike 类中应当显示“双轮车”信息。在 Main()方法中创建 Car 和 Motorbike 的实例,并在控制台中显示消息。

3.4、实验步骤

3.4.1、实验程序

1、 实验的程序如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;namespace 实验五_2_
{abstract class Vehicle{public virtual void NumOfWheels()   //创建虚方法{ }}class Car:Vehicle {public override void NumOfWheels()   //重载虚方法,输出信息{Console.WriteLine("四轮车");}}class Motorbike : Vehicle{public override void NumOfWheels(){Console.WriteLine("双轮车");}}class Program{static void Main(string[] args){Car car = new Car();                    //创建派生类的对象Motorbike motorbike = new Motorbike();car.NumOfWheels();                      //调用派生类的方法motorbike.NumOfWheels();Console.ReadLine();}}
}

3.4.2、实验运行结果

2、 实验的运行效果如下:

四、实验总结

  • 1、通过本次实验,自己掌握了C#的派生类、方法重写、方法多态等运用。
  • 2、掌握了类的继承特性。
  • 3、加深了对派生类继承基类的属性的概念,派生类除了拥有基类的属性外,还有自己的属性。
  • 4、第一个实验过程中出现了基类没有“0”参数的构造函数的情况。
    于是加上了语句
public Vehicles()
{}
  • 使基类拥有没有参数的构造函数。

C#面向对象程序设计课程实验五:实验名称:C#面向对象技术相关推荐

  1. 2017福州大学面向对象程序设计课程作业五

    作业链接 课程第五次作业统计完成,本次作业满分100分,统计结果如下: 学号 姓名 作业地址 分数 111500206 赵畅 http://www.cnblogs.com/ZCplayground/p ...

  2. C#面向对象程序设计课程实验二: 实验名称:Windows 窗体程序

    C#面向对象程序设计课程实验二: 实验名称:Windows 窗体程序 实验内容:Windows 窗体程序 一.实验目的及要求 二.实验环境 三.实验内容与步骤 一.设计简单的计算器 3.1.实验内容 ...

  3. C#面向对象程序设计课程实验一:实验名称:C#语言基础、程序流程控制

    C#面向对象程序设计课程实验一:实验名称:C#语言基础.程序流程控制 实验内容:C#语言基础.程序流程控制 一. 实验目的 二.实验环境 三.实验内容 四.实验总结 实验内容:C#语言基础.程序流程控 ...

  4. C#面向对象程序设计课程实验四:实验名称:C#面向对象程序设计基础

    C#面向对象程序设计课程实验四:实验名称:C#面向对象程序设计基础 实验内容:C#面向对象程序设计基础 一.实验目的 二.实验环境 三.实验内容与步骤 3.1.1.实验内容 3.1.2.实验步骤 3. ...

  5. 20145315 《Java程序设计》实验五实验报告

    20145315 <Java程序设计>实验五实验报告 实验五 Java网络编程 我负责服务器部分,王嘉澜负责客户端部分:http://www.cnblogs.com/SJZGM10/p/5 ...

  6. java面向对象程序设计 习题答案_Java面向对象程序设计习题解答与实验 张桂珠.pdf...

    Java 面 向对 象 程 序 设 计 习题 解 答 与 实验 张桂珠 姚晓峰 陈爱国 主编 北 京 邮 电 大 学 出 版 社 ·北 京· 内 容 简 介 Java 面向对象程序设计需要做大量的练习 ...

  7. C++《面向对象程序设计课程设计》

    C++<面向对象程序设计课程设计> <面向对象程序设计课程设计>课程说明 适用专业:计算机科学与技术 课程周数:5周 一.根据计算机科学与技术专业人才培养方案制订. (一)课程 ...

  8. 面向对象程序设计课程进度条

    面向对象程序设计课程进度条 周次 (阅读/编写)代码行数 发布微博量/博客评论数量 课堂/课余学习时间(小时) 最满意的编程任务 第一周 42/25 1/0 4/3 乘法表实验 第二周 150/100 ...

  9. 兰州大学C语言程序设计课程作业,【兰州大学|兰州大学C语言程序设计课程作业( 五 )】语言程序设计|课程|作业-傻大方...

    『易坊知识库摘要_兰州大学|兰州大学C语言程序设计课程作业( 五 )』34.用户未作答标准答案exp04. 以下叙述中正确的是 在程序的一行上可以出现多个有效的预处理命令行使用带参的宏时,参数的类型应 ...

最新文章

  1. sqlserver 参数化查询 允许为null_1+Null 居然等于 Null
  2. setup.s 总结——Linux-0.11 剖析笔记(四)
  3. 常用的 Http ContentType 对照表
  4. Kanboard简单的可视化任务板,项目管理
  5. SXSSFWorkbook使用——使用excel模板
  6. 两个电脑如何切换以方便使用文件
  7. HID API for Linux, Mac OS X, and Windows
  8. python使用ip代理抓取网页
  9. vertica常用sql语句总结
  10. 如何将onedrive for business扩容为硬盘空间
  11. 我在金蝶用户年会上的讲话
  12. 右击计算机管理打开会闪退,win10应用商店为什么会闪退 win10应用商店出故障怎么修复...
  13. docker学习整理
  14. 事件对象,事件流(事件冒泡和事件捕获)、事件委托、L0和L2注册等相关概念及用法
  15. HP 认证工程师试题(转)
  16. 搞 IoT 物联网居然要用这么多通信协议...
  17. Navicat导出SQL数据报错1577,Cannot proceed because system tables used by Event Scheduler where found damage
  18. 教你如何将下载的电影刻录成VCD
  19. 苹果cms替换资源_苹果cms批量处理数据
  20. TC-PMBOX系列10G相位调制仪

热门文章

  1. 微信小程序请求及封装请求方式
  2. 炒股的最简单方法 炒股的管理和纪律要求
  3. 怎么把PPT批量变成图片?
  4. 【资料分享】工程师必备物联网资料合集 电子书PDF
  5. DO WE NEED ANISOTROPIC GRAPH NEURALNETWORKS?(EGConv)
  6. 基于linux的在线英汉词典(带源码)
  7. 【Audio】Unity音频模块:加载、转换、剪切、混音、合并
  8. 什么是HTTP HOST
  9. python2 unicode转换中文
  10. vscode实用快捷键查找和替换