好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

实验报告5 继承与多态.doc

12页
  • 卖家[上传人]:第***
  • 文档编号:34231809
  • 上传时间:2018-02-22
  • 文档格式:DOC
  • 文档大小:153KB
  • / 12 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 实验名称:继承与多态 一.实验目的:((1)理解继承的含义,掌握派生类的定义方法和实现;(2)理解虚函数在类的继承层次中的作用,虚函数的引入对程序运行时的影响,能够对使用虚函数的简单程序写出程序结果3)编写体现类的继承性(成员变量,成员方法,成员变量隐藏)的程序;(4)编写体现类多态性(成员方法重载,构造方法重载)的程序5)理解接口和抽象类、抽象方法的定义和实现方法;(5)理解接口和抽象类的差别 二.上机内容:(1)进行类的继承和基类构造方法的应用的练习;(2)进行类的多态性练习(3)进行抽象类和接口的练习(4)整理上机步骤,总结经验和体会5)完成实验报告三.上机步骤:类的继承和基类构造方法的应用(1) 编写一个学生和教师数据输入和显示程序,学生数据有编号、姓名、班级和成绩,教师数据有编号、姓名、职称和部门要求将编号、姓名输入和显示设计成一个类person,并作为学生数据操作类 student 和教师类数据操作类 teacher 的基类using System;using System.Collections.Generic;using System.Text;namespace ConsoleApplication2{class person{public string bh;//编号public string xm;//姓名 public person(string bh, string xm){this.bh = bh;this.xm = xm;}public void show(){Console.WriteLine("姓名:{0}", xm);Console.WriteLine("编号:{0}", bh);} }class student : person{public string bj;//班级public int cj;//成绩public student(string sbh, string sxm, string sbj, int scj): base(sbh, sxm){bh = sbh;xm = sxm;bj = sbj;cj = scj;}public new void show(){Console.WriteLine("***student***");Console.WriteLine("姓名:{0}", xm);Console.WriteLine("编号:{0}", bh);Console.WriteLine("班级:{0}", bj);Console.WriteLine("成绩:{0}", cj);}}class teacher : person{public string zc;//职称public string bm;//部门public teacher(string tbh, string txm, string tzc, string tbm): base(tbh, txm){bh = tbh;xm = txm;zc = tzc;bm = tbm;}public new void show(){Console.WriteLine("***teacher***");Console.WriteLine("姓名:{0}", xm);Console.WriteLine("编号:{0}", bh); Console.WriteLine("职称:{0}", zc);Console.WriteLine("部门:{0}", bm);}}class program{static void Main(string[] args){ student st = new student("050013", "张三", "信管091", 91);st.show();teacher te = new teacher("046950", "范仲淹", "特级教师", "教务处");te.show();Console.ReadLine();}}}运行结果:(2)将以上程序尝试改成通过调用基类构造方法的方式来初始化编号和姓名,并总结调用基类构造方法的应用要点。

      using System;using System.Collections.Generic;using System.Text;namespace ConsoleApplication2{class person{public string bh;//编号public string xm;//姓名 public person(string bh, string xm){this.bh = bh;this.xm = xm;}public void show(){Console.WriteLine("姓名:{0}", xm);Console.WriteLine("编号:{0}", bh);}} class student : person{public string bj;//班级public int cj;//成绩public student(string sbh, string sxm, string sbj, int scj): base(sbh, sxm){ bj = sbj;cj = scj;}public new void show(){Console.WriteLine("***student***");Console.WriteLine("姓名:{0}", xm);Console.WriteLine("编号:{0}", bh);Console.WriteLine("班级:{0}", bj);Console.WriteLine("成绩:{0}", cj);}}class teacher : person{public string zc;//职称public string bm;//部门public teacher(string tbh, string txm, string tzc, string tbm): base(tbh, txm){ zc = tzc;bm = tbm;}public new void show(){Console.WriteLine("***teacher***");Console.WriteLine("姓名:{0}", xm);Console.WriteLine("编号:{0}", bh);Console.WriteLine("职称:{0}", zc);Console.WriteLine("部门:{0}", bm);}}class program{static void Main(string[] args){ student st = new student("050013", "张三", "信管091", 91);st.show(); teacher te = new teacher( "046950", "范仲淹","特级教师", "教务处");te.show(); Console.ReadLine();}}}运行结果:类的多态性练习创建一个 Person 类,要求如下:(1)包含公共字段:string name,私有字段:int age;(2)公共属性:int Age 对应私有字段 age,注意在设置 Age 的时候要验证年龄的合法性;(3)构造函数:Person() 、Person(string name,int Age)(4)析构函数:~Person();(5)方法:virtual void ShowMe()、void ForNew()、void ForOverload()、void ForOverload(Person p);创建一个 Student 类,继承 Person 类:(1)公共字段:number ;(2)构造函数:Student()、Student(string name,int age,string number)该构造函数要调用父类的构造函数 Person(string name,int Age);(3)方法:重写父类的ShowMe方法、重载父类的ForOverload方法、隐藏父类的ForNew方法。

      using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace ConsoleApplication32{class Person{public string name;private int age;public int Age {set {if (value > 0 && value < 150) {age = value; }}get { return age; }}public Person (string name,int age){this.Age=age;this.name=name;}public Person(){Console.WriteLine("hello,you are welcom!,your name is{0},your age is{1}",name,age);}~Person(){ }public virtual void ShowMe(){Console.WriteLine("name:{0} age:{1}", name, age);}public void ForNew(){Console.WriteLine("name:{0} age:{1}", name, age);}public void ForOverLoad(){Console.WriteLine("name:{0} age:{1}", name, age);}public void ForOverLoad(Person p){Console.WriteLine("name={0} age={1}", p.name, p.age);}}class Student:Person {public string number;public Student() { }public Student(string name, int age, string number) : base(name, age){this.number = number;}public override void ShowMe(){Console.WriteLine("name:{0} age:{1} number:{2}",name,Age,number); }public void ForOverLoad(Student s){Console.WriteLine("name={0} age={1} number:{2}", s.name, s.Age,s.number);}public new void ForNew() {Console.WriteLine("name:{0} age:{1} number:{2}",name,Age,number);}} class Program{static void Main(string[] args){Student s = new Student("罗瑞",20,"090202563");s.ShowMe();s.ForNew();s.ForOverLoad(s);Console.ReadLine();}}} 运行结果:抽象类(1)创建一个 shape 抽象类,要求如下:属性:公共属性 double length 和抽象属性 double width;方法:虚方法 double Pe。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.