.NET继承与多态实验报告
实验三 继承和多态

实验三继承和多态一、实验目的1.熟练掌握封装性,多态性的概念。
2.熟练掌握抽象类abstract的概念。
3.熟练掌握接口interface的概念。
4.熟练包package的概念以及编译运行的方法。
二、实验内容1.编写一个Java Application程序,该程序有个点Point类,它包含横坐标x和纵坐标y 两个属性,再给Point定义两个构造方法和一个打印点坐标的方法Show。
定义一个圆Circle 类,它继承Point类(它是一个点,圆心(Center)),除此之外,还有属性半径Radius,再给圆定义2个构造方法、一个打印圆的面积的方法PrintArea和一个打印圆中心、半径的方法Show(其中显示圆心可以用super.Show()的方式)。
package实验三;public class Point {double x,y;public Point(){x=0;y=0;}public Point(double x,double y){this.x=x;this.y=y;}public String Show(){return"横坐标为:"+this.x+",纵坐标为:"+this.y;}/*** @param args*/public static void main(String[] args) {// TODO Auto-generated method stubPoint a=new Point(3.0,4.0);System.out.println(a.Show());}}package实验三;public class Circle extends Point {double Radius;public Circle(){super(0,0);Radius=0;}public Circle(double x,double y,double z){super(x,y);Radius=z;}public String Show(){System.out.println("圆心的"+super.Show()+"半径为:"+Radius);return"圆心的"+super.Show()+"半径为:"+Radius;}public String PrintArea(){System.out.println("圆的面积为:"+Math.PI*Radius*Radius);return"圆的面积为:"+Math.PI*Radius*Radius;}/*** @param args*/public static void main(String[] args) {// TODO Auto-generated method stubCircle a=new Circle(3,4,5);a.Show();a.PrintArea();}}2.编写一测试类,对其进行编译、运行。
C++实验报告五--继承与多态性 -

南昌航空大学实验报告2011年11月16号课程名称:面向对象程序设计B 实验名称:继承与多态性班级:姓名:同组人:无指导教师评定: 签名:一、实验目的根据现有类建立新类;学习构造基类和虚函数的用法。
二、实验内容应用VC++6.0的编辑环境构造一个类Jhtx及其派生类,该类主要实现关于几何图形的基本操作。
对于基类“几何图形”,有求面积、求体积的函数(纯虚函数),其派生类圆和矩形主要有初始化(构造函数),求面积,求周长操作,类圆的派生类圆球和圆柱有求表面积、体积操作。
试在主函数中分别定义圆、圆球、圆柱以及矩形的对象,并调用其成员函数实现其相应操作。
三、概要设计要实现的功能:求类圆和矩的面积、周长,求类圆的派生类圆球和圆柱表面积、体积;函数原型:double Ball::GetArea();double Ball::Getvolume();double Circle::GetArea();double Circle::Getperimeter();double Column::GetArea();double Column::Getvolume(); double Rectangle::GetArea(); double Rectangle::Getperimeter(); void Show();四、详细设计定义纯虚函数:virtual double Get_Girth()=0; virtual double Get_Volume()=0;virtual double Get_SurArea()=0; virtual double Get_Area()=0;求圆的面积的操作:double Circle::GetArea(){return M*radiums*radiums;}求圆周长的操作:double Circle::Getperimeter(){return 2*M*radiums;}求球表面积的操作:double Ball::GetArea(){return 4.0*M*radiums*radiums;}求球体积的操作:double Ball::Getvolume(){return 4/3*M*radiums*radiums*radiums;}求圆柱表面积的操作:double Column::GetArea(){return 2*M*(radiums*H+radiums*radiums);}求圆柱体积的操作:double Column::Getvolume(){return M*H*radiums*radiums;}求矩形面积的操作:double Rectangle::GetArea(){return Long*Wide;}求矩形周长的操作:double Rectangle::Getperimeter(){return 2*(Long+Wide);}五、程序调试在函数调试的过程中,出现了以下错误提示信息:1、 error C2470: “Circle”: 看起来像函数定义,但没有参数列表;跳过明显的函数体;原因为在语句“double Circle::GetArea()”将域作用符“::”错写为“:“;经调试无误后,运行的结果为:六、实验总结通过这次的试验,我明显的感觉到自己对这方面的知识掌握的还不够熟练,不能顺利地、流畅地运用这方面的知识,因为我没有在规定的时间内完成程序的设计,课后还是要多复习。
实验报告5 继承与多态

实验名称:继承与多态一.实验目的:((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)将以上程序尝试改成通过调用基类构造方法的方式来初始化编号和姓名,并总结调用基类构造方法的应用要点。
实习报告 .net实习报告2篇

实习报告 .net实习报告2篇实习报告 .net实习报告。
尊敬的领导:
我是一名计算机专业的大学生,在过去的一个月里,我有幸在贵公司进行了为期四周的.NET实习。
通过这次实习,我收获颇丰,深刻体会到了.NET技术在实际项目中的应用和重要性。
在实习期间,我主要参与了公司正在进行的一个.NET项目的开发工作。
在项目中,我学习了C#编程语言的基础知识,并通过实际操作掌握了框架的运用。
在与项目组成员的合作中,我学会了使用Visual Studio等开发工具,熟悉了团队协作的流程和规范。
同时,我也在项目中负责了一些小模块的开发和测试工作,通过这些实际操作,我对.NET技术有了更深入的理解和掌握。
在实习期间,我还有幸参加了公司组织的一些培训和讲座,对.NET技术的发展趋势和应用场景有了更清晰的认识。
同时,我也和一些资深的.NET工程师进行了交流和学习,他们的经验和见解让我受益匪浅。
通过这次实习,我不仅学到了很多专业知识,还提升了自己的实际操作能力和团队协作能力。
在未来的学习和工作中,我将继续努力,不断提升自己,为公司的发展贡献自己的力量。
最后,再次感谢公司给予我这次宝贵的实习机会,我会珍惜并利用好这次学习的机会,希望能有机会再次与贵公司合作。
此致。
敬礼。
XXX。
日期:XXXX年XX月XX日。
实验报告三

攀枝花学院实验报告实验课程:Visual C#.NET程序设计教程实验项目:上机实验5 实验日期:系:数计学院成绩:一、实验目的1、区分静态类与非静态类,掌握静态字段、静态方法和静态构造函数的定义方法。
2、理解类的继承性与多态性,掌握其应用方法。
3、理解抽象类、接口的概念,掌握抽象类与接口的定义及使用方法。
4、理解分部类和命名空间的概念,掌握分部类和命名空间的使用方法。
二、实验要求1.熟悉Visual 的基本操作方法。
2.认真阅读本章相关内容,尤其是案例。
3.实验前进行程序设计,完成源程序的编写任务。
4.反复操作,直到不需要参考教材、能熟练操作为止。
三、实验步骤1、设计一个Windows应用程序,在该程序中首先构造一个学生基本类,再分别构造小学生、中学生、大学生等派生类,当输入相关数据,单击不同的按钮(小学生、中学生、大学生)将分别创建不同的学生对象,并输入当前的学生总人数、该学生的姓名、学生类型和平均成绩。
具体要求如下:(1)每个学生都有的字段为:姓名、年龄。
(2)小学生的字段还有语文、数学,用来表示这两科的成绩。
(3)中学生在此基础上多了英语成绩。
(4)大学生只有必修课和选修课两项成绩。
(5)学生类具有方法来统计自己的总成绩,并输出。
(6)通过静态成员自动记录学生总人数。
(7)成员初始化能通过构造函数完成。
源程序如下:using System;using ;using ;using ;using ;using ;using Test3_1{public partial class Form1 : Form{public Form1(){InitializeComponent();}public abstract class Student{protected string name;protected int age;protected static int number;public Student(string name, int age){= name;= age;number++;}public string Name { get { return name; } }public virtual string type{get { return"学生"; }}public abstract double total();public abstract double Average();public string getInto(){string result = ("总人数:{0},姓名:{1},{2},{3}岁", number, Name, type, age);if (type == "小学生")result += (",平均成绩为{0:N2}:\n", total() / 2);else if(type=="中学生")result += (",平均成绩为{0:N2}:\n", total() / 3);elseresult += (",总学分为{0:N2}:\n", total());return result;}}public class Pupil : Student{protected double chinese;protected double math;public Pupil(string name, int age, double chinese, double math): base(name, age){= chinese;= math;}public override string type{get{return"小学生";}}public override double total(){return chinese + math;}}public class Middle : Student{protected double chinese;protected double math;protected double english;public Middle(string name, int age, double chinese, double math,double english) : base(name, age){= chinese;= math;= english;}public override string type{get{return"中学生";}}public override double total(){return chinese + math+english;}}public class University : Student{protected double majors;protected double elective;public University(string name, int age, double majors, double elective): base(name, age){= majors ;= elective;}public override string type{get{return"大学生";}}public override double total(){return majors+elective;}}private void btpupil_Click(object sender, EventArgs e){int age = ;double chinese = ;double math = ;Pupil p = new Pupil, age, chinese, math);+= ();}private void btMiddle_Click(object sender, EventArgs e){int age = ;double chinese = ;double math = ;double english = ;Middle p = new Middle, age, chinese, math,english);+= ();}private void btUniversity_Click(object sender, EventArgs e) {int age = ;double chinese = ;double math = ;University u = new University, age, chinese, math);+= ();}}}运行结果如图所示:2、完善上机实验4-3设计的银行帐户管理系统,增加一个VIP账户的管理。
实验三 继承和多态

实验三继承和多态一、实验目的1.熟练掌握封装性,多态性的概念。
2.熟练掌握抽象类abstract的概念。
3.熟练掌握接口interface的概念。
4.熟练包package的概念以及编译运行的方法。
二、实验内容1.编写一个Java Application程序,该程序有个点Point类,它包含横坐标x和纵坐标y 两个属性,再给Point定义两个构造方法和一个打印点坐标的方法Show。
定义一个圆Circle 类,它继承Point类(它是一个点,圆心(Center)),除此之外,还有属性半径Radius,再给圆定义2个构造方法、一个打印圆的面积的方法PrintArea和一个打印圆中心、半径的方法Show(其中显示圆心可以用super.Show()的方式)。
编写一测试类,对其进行编译、运行。
结果如何?如去掉语句“super.Show();”,再看看运行结果。
理解程序中重载和多态性的运用。
2.完成以下步骤要求:(1)设计一个表示二维平面上点的类Point,包含有表示坐标位置的protected类型的成员变量x和y,获取和设置x和y值的public方法。
(2)设计一个表示二维平面上圆的类Circle,它继承自类Point,还包含有表示圆半径的protected类型的成员变量r,获取和设置r值的public方法、计算圆面积的public 方法。
(3)设计一个表示圆柱体的类Cylinder,它继承自类Circle,还包含有表示圆柱体高的protected类型的成员变量h、获取和设置h值的public方法、计算圆柱体体积的public 方法。
(4)建立若干个Cylinder对象,输出其轴心位置坐标、半径、高及其体积的值。
3.学校中有老师和学生两类人,而在职研究生既是老师又是学生,对学生的管理和对教师的管理在他们身上都有体现。
(1)设计两个信息管理接口StudentInterface和TeacherInterfaceo其中,StudentInterface接口包括setFee方法和getFee方法,分别用于设置和获取学生的学费;TeacherInterface接口包括setPay方法和getPay方法,分别用于设置和获取教师的工资。
继承与多态性 实验六实验报告(面向对象程序设计)

大学实验报告年月日课程名称:面向对象程序设计实验名称:继承与多态性班级:姓名:同组人:无指导教师评定:签名:实验六运算符重载1、实验目的理解运算符重载(非成员形式和成员形式)、学习重载几类运算符(++,=,!=,+,-,==等)。
2、实验内容应用VC++6.0的构建一个复数类Complex,试对下列几个运算符进行重载:++,=,!=,+,-,==,其中要求要有成员重载形式和友元重载形式,而且,++运算符要求实现先加和后加两种形式。
该类定义原型说明:class complex{public:complex(double r=0,double i=0);complex &operator +(complex &c);complex operator -(complex &c);complex operator *(complex &c);friend complex operator /(complex &c1,complex &c2);friend int operator ==(complex &c1,complex &c2);friend int operator !=(complex &c1,complex &c2);//friend complex operator++(complex &c);//friend complex operator++(complex &c,int);complex operator++();complex operator++(int);complex operator=(complex &c);void disp();private:double real;double imag;};。
类的继承与多态性实验报告

类的继承与多态性实验报告类的继承与多态性实验报告目录1.介绍2.什么是多态3.多态在Java中的技术基础4.示例5.多态的好处6.总结介绍之前的文章介绍过类的封装性和继承性,现在是时候聊聊面向对象编程的三大特性之一的最后一个类的多态性了。
多态的基础是继承(包括了接口的实现)和方法的覆盖。
什么是多态多态对应的英文单词是polymorphism ,百度翻译给出的翻译是:n.多型现象,多态性;多机组合形式;按字面意思就是多种状态、形态、姿态等等,潜台词就是某个东西具有多种状态、形态、姿态等等。
那是什么东西呢?在面向对象的编程语言里面(当然就包括Java 了)就是某个方法或函数。
那方法的多种状态、形态、姿态有是个什么意思呢?这其实是指同一个方法具有多个方法体,就是方法的实现。
而方法的相同与否是由方法签名决定的。
所以,多态其实本质上是指同一个类的同一个方法却具有不同的行为特征。
状态、形态、姿态指的就是行为特征。
多态在Java中的技术基础然而,在Java中,同一个类里面是不可能存在两个签名相同而实现不同的方法的,否则的话会导致无法判断该执行哪个方法,因此在编译时就会报错。
所以,肯定是在两个类中才有可能存在两个签名相同而实现不同的方法,一个实现在这个类,另一个实现在另一个类。
而如果这两个类毫无瓜葛,那么肯定就与多态的本质(同一个类的同一个方法却具有不同的行为特征)自相矛盾了。
所以,这两个类肯定是有某种联系的。
我们再想想,什么概念是能够让两个不同的类却又能称为同一个类的? 答案就是类的继承/扩展,就是现实中的“某东西是某类东西”的概念,就是“具体和抽象”的思想。
比如,男人是人,女人也是人,男人类和女人类就借助于人类建立了某种联系,而人类具有的某个行为在男人类和女人类中是有着不同体现的,比如人类的吃饭这个行为,男人类的体现是狼吞虎咽,女人类的体现是细嚼慢咽。
例子不是很恰当,但意思就是这么个意思。
所以说,Java里面多态的技术基础就是方法的覆盖,当然,在Java中覆盖不仅仅发生在类的继承/扩展上,还可能发生在接口的实现上。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验报告
课程名称.NET程序设计
实验项目.NET继承与多态
专业计科班级 1 姓名学号
指导教师实验成绩
年月日
一、实验目的(介绍本次实验的预期目标,完成的功能)
1.理解类的继承性与多态性,掌握其应用方法。
2.理解抽象类、接口的概念,掌握抽象类与接口的定义及使用方法。
二、实验过程(介绍实验中涉及的关键过程,如核心算法、数
据结构等)
1.设计一个Windows应用程序,在该程序中首先构造一个学生基本类,再分别构造小学生、中学生、大学生等派生类,要求具有不同的特性和行为,能通过静态成员自动记录不同学生的人数。
学生类要求的功能:
成员变量:学号、姓名、总成绩、性别等;
方法:构造函数、析构函数、显示学生的全部信息。
派生类要求的功能:
成员变量:
小学生类:语文成绩、数学成绩、英语成绩
中学生类:化学成绩、物理成绩
大学生类:高数成绩、计算机成绩
静态变量:人数
方法:构造函数、析构函数、显示学生全部信息。
选择“文件”→“新建”→“项目”菜单命令,弹出“新建项目”对话框,在“模板”列表框中选择“控制台应用程序”。
首先创建一个学生类,属性有学号、姓名、总成绩、性别,构造函数里赋值。
代码如图1-1所示:
图1-1 学生类源代码
然后分别创建小学生类、中学生类和大学生类。
代码如图1-2、1-3、1-4所示:
图1-2 小学生类源代码
图1-3 中学生类源代码
最后创建班级类并实现学生信息管理。
如图1-5、1-6所示:
图1-5 班级类
图1-6 程序源代码
三、实验结果分析(分析实验的最终结果)
1.选择“调试”→“启动调试”,或“调试”→“开始执行(不调试)”菜单命令,将程序显示在命令提示符窗口中。
如图2-1所示:
图2-1 程序主界面
按数字1键,输入班级的学生人数,然后按回车键。
依次输入学生学号、姓名、性别、总成绩。
如图2-2所示:
图2-2 输入学生信息
按数字2键,可以输入学号来查询学生信息。
如图2-3所示:
图2-3 查询学生信息
按数字3键可以统计出全班的平均分。
如图2-4所示:
图2-4 统计全班平均分
四、实验心得
通过这次实验我掌握了C#中类的继承性与多态性。
面向对象的继承与多态允许创建一个通用类,然后从通用类派生出更多的特殊类。
这个通用类称为基类,特殊类称为派生类,派生类继承基类的属性和方法。
对比Java语言中,C#使用“:”关键字继承类;通过base关键字,派生类构造函数就可以调用基类的构造函数;用sealed关键字可以声明密封类,避免他人共享代码;使用new关键字来定义与基类中同名的成员;在基类中使用virtual关键字标识虚拟成员,然后在派生类中用override关键字将基类的虚拟成员覆盖掉。
指导教师签字:
年月日。