C# 实验二 多态、接口、委托及事件

  • 格式:doc
  • 大小:230.50 KB
  • 文档页数:11

课程名称 面向对象程序设计 班级 实验日期 2013-05-23 姓 名 学号 实验成绩 实验名称 多态、接口、委托及事件 实 验 目 的 及 要 求

1、掌握类的多态特性以及多态的实现方法。 2、掌握接口的声明、实现方法,能够通过接口实现简单系统功能的组织。 3、理解委托的作用,能够通过委托实现方法作为参数的传递。 4、理解事件的含义和在程序设计中的作用,能够定义一个用户事件并实现事件的触发。

实 验 环 境 Microsoft Visual Studio 2010

实 验 内 容

1.设计程序,实现类的继承和多态 2.设计程序,实现接口的应用 3.设计程序,实现委托的应用 4.设计程序,实现事件的应用 写了四个小程序,简单的实现了以上的内容

算 法 描 述 及 实 验 步 骤

一.类的继承和多态 在实例中,首先添加一个父类Person类,再添加一个Teacher子类和Student子类都继承于Person类,分别重写父类中的抽象方法。最后在Program类中实例化两个对象,实现多态和继承。 二.接口的应用 在实例中,首先添加一个接口Iperson,再添加一个Teacher类和Student类都继承接口 Iperson,并且都实现接口Iperson里的抽象方法。最后在Program类中实例化两个对象,实现接口的应用。 三.委托的应用 在实例中,首先添加一个父类Person类,再添加一个Teacher子类和Student子类都继承于Person类,分别重写父类中的抽象方法。最后在Program类中实例化两个对象,声明一个委托function,讲子类的方法绑定到function上,再调用function。

太原工业学院计算机工程系 实 验 报 告 四.事件的应用

在实例中,首先添加一个父类Person类,再添加一个Teacher子类和Student子类都继承于Person类,分别重写父类中的抽象方法。在Student子类中写ChuFen事件。最后在Program类中实例化两个对象,调用事件。 这个例子写事件不是很恰当,自己在事件这一块也不是很熟悉,有不足之处和不理解的地方。 调 试 过 程 及 实 验 结 果

一.类的继承和多态(调试结果) 二.接口(调试结果) 三.委托(调试结果) 四.事件(调试结果)

总 结 我通过这次的学习,基本掌握了多态,接口,委托还有事件的应用,以上的实例都是

非常简单的应用,功能比较单一,都是为了便于学洗了理解。需要多多练习。对于委托和事件,我的理解还不够透彻,在实现事件那一块,不熟悉,也不太理解。

手动能力很重要,多练多写,出现问题,自己努力尝试解决问题。 附 录

一.类的继承和多态(代码) using System; using System.Collections.Generic; using System.Linq; using System.Text; //person类 namespace myWork_20130523 { public abstract class Person { public string name; public abstract void Eat(); public abstract void Sleep(); public abstract void Work(); } }

using System; using System.Collections.Generic; using System.Linq; using System.Text; //老师类 namespace myWork_20130523 { class Teacher:Person { public Teacher(string name){ this.name = name; }

public override void Sleep() { Console.WriteLine(name+"老师会睡觉……"); } public override void Eat() { Console.WriteLine(name+"老师会吃……"); } public override void Work() { Console.WriteLine(name+"老师的工作:教学"); } } }

using System; using System.Collections.Generic; using System.Linq; using System.Text; //学生类 namespace myWork_20130523 { class Student:Person { public Student(string name) { this.name = name; } public override void Eat() { Console.WriteLine("学生"+name+"会吃饭"); } public override void Sleep() { Console.WriteLine("学生"+name+"会睡觉"); } public override void Work() { Console.WriteLine("学生"+name+"的工作是:学习"); } } }

using System; using System.Collections.Generic; using System.Linq; using System.Text; //多态的实现 namespace myWork_20130523 { class Program { public static void Main(string[] args) { Person t = new Teacher("王大伟"); t.Eat(); t.Sleep(); t.Work(); Person s = new Student("小明"); s.Eat(); s.Sleep(); s.Work();

} } }

二.接口的应用(代码)

using System; using System.Collections.Generic; using System.Linq; using System.Text; //接口Iperson namespace myInterface_20130523 { interface Iperson { void Eat(); void Sleep(); void Hobby();

} } using System; using System.Collections.Generic; using System.Linq; using System.Text; //Teacher类 namespace myInterface_20130523 { class Teacher:Iperson {

public void Eat() { Console.WriteLine("C#老师爱吃土豆"); }

public void Sleep() { Console.WriteLine("C#老师会睡觉"); }

public void Hobby() { Console.WriteLine("C#老师的爱好是骑单车"); Console.WriteLine("===================="); } } }

using System; using System.Collections.Generic; using System.Linq; using System.Text; //student类 namespace myInterface_20130523 { class Student:Iperson {

public void Eat() { Console.WriteLine("学生喜欢吃雪糕"); }

public void Sleep() { Console.WriteLine("学生会睡觉"); }

public void Hobby() { Console.WriteLine("学生的爱好是玩游戏和开发游戏"); } } }

using System;