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

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

5bb71a4b28a64495b7e52595be8a14dd.jpg

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


18031e646f0149c28d149dd17b4f667b.jpg


一、 实验目的及要求


  • (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、 实验的运行结果如下:


3e5b81c2a2b44928ba080a742b71b187.jpg


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、 实验的运行效果如下:

068f3800e2474f8a80823dd2b0871f65.jpg


image.png


四、实验总结


1、通过本次实验,自己掌握了C#的派生类、方法重写、方法多态等运用。

2、掌握了类的继承特性。

3、加深了对派生类继承基类的属性的概念,派生类除了拥有基类的属性外,还有自己的属性。

4、第一个实验过程中出现了基类没有“0”参数的构造函数的情况。

于是加上了语句

public Vehicles() 
{
}
  • 使基类拥有没有参数的构造函数。


f0b334bc49f9445eb03c5e54483f5159.jpg


相关文章
|
8天前
|
人工智能 开发框架 前端开发
C#/.NET/.NET Core技术前沿周刊 | 第 12 期(2024年11.01-11.10)
C#/.NET/.NET Core技术前沿周刊 | 第 12 期(2024年11.01-11.10)
|
7天前
|
人工智能 开发框架 安全
C#/.NET/.NET Core技术前沿周刊 | 第 13 期(2024年11.11-11.17)
C#/.NET/.NET Core技术前沿周刊 | 第 13 期(2024年11.11-11.17)
|
2月前
|
SQL API 定位技术
基于C#使用winform技术的游戏平台的实现【C#课程设计】
本文介绍了基于C#使用WinForms技术开发的游戏平台项目,包括项目结构、运行截图、实现功能、部分代码说明、数据库设计和完整代码资源。项目涵盖了登录注册、个人信息修改、游戏商城列表查看、游戏管理、用户信息管理、数据分析等功能。代码示例包括ListView和ImageList的使用、图片上传、图表插件使用和SQL工具类封装,以及高德地图天气API的调用。
基于C#使用winform技术的游戏平台的实现【C#课程设计】
|
1月前
|
人工智能 开发框架 C#
C#/.NET/.NET Core技术前沿周刊 | 第 6 期(2024年9.16-9.22)
C#/.NET/.NET Core技术前沿周刊 | 第 6 期(2024年9.16-9.22)
|
1月前
|
人工智能 开发框架 Cloud Native
C#/.NET/.NET Core技术前沿周刊 | 第 9 期(2024年10.07-10.13)
C#/.NET/.NET Core技术前沿周刊 | 第 9 期(2024年10.07-10.13)
|
1月前
|
存储 安全 算法
C#一分钟浅谈:数据加密与解密技术
【10月更文挑战第3天】在数字化时代,信息安全至关重要。数据加密作为保障信息不被未授权访问的有效手段,通过特定算法将明文转换为密文,确保即使数据被截获也难以解读。本文从基础概念入手,介绍C#中实现数据加密的方法,涵盖对称加密(如AES、DES)与非对称加密(如RSA),并通过具体示例代码演示如何使用`System.Security.Cryptography.Aes`类完成AES加密和解密过程。此外,还强调了密钥管理及安全策略的重要性。
51 4
|
1月前
|
负载均衡 网络协议 C#
C#实现WebSocket实时消息推送技术详解
C#实现WebSocket实时消息推送技术详解
39 1
|
1月前
|
数据可视化 NoSQL C#
C#/.NET/.NET Core技术前沿周刊 | 第 8 期(2024年10.01-10.06)
C#/.NET/.NET Core技术前沿周刊 | 第 8 期(2024年10.01-10.06)
|
1月前
|
设计模式 开发框架 C#
C#/.NET/.NET Core技术前沿周刊 | 第 4 期(2024年9.1-9.8)
C#/.NET/.NET Core技术前沿周刊 | 第 4 期(2024年9.1-9.8)
|
2月前
|
传感器 应用服务中间件 Linux
C#/.NET/.NET Core技术前沿周刊 | 第 3 期(2024年8.26-8.31)
C#/.NET/.NET Core技术前沿周刊 | 第 3 期(2024年8.26-8.31)
下一篇
无影云桌面