实验三类的重载继承和多态Word下载.docx

上传人:b****5 文档编号:17975841 上传时间:2022-12-12 格式:DOCX 页数:11 大小:64.26KB
下载 相关 举报
实验三类的重载继承和多态Word下载.docx_第1页
第1页 / 共11页
实验三类的重载继承和多态Word下载.docx_第2页
第2页 / 共11页
实验三类的重载继承和多态Word下载.docx_第3页
第3页 / 共11页
实验三类的重载继承和多态Word下载.docx_第4页
第4页 / 共11页
实验三类的重载继承和多态Word下载.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

实验三类的重载继承和多态Word下载.docx

《实验三类的重载继承和多态Word下载.docx》由会员分享,可在线阅读,更多相关《实验三类的重载继承和多态Word下载.docx(11页珍藏版)》请在冰豆网上搜索。

实验三类的重载继承和多态Word下载.docx

系统管理员/学生/教师都有用户名和密码属性,并都有Login和显示自身信息的方法,另外,学生拥有班级和成绩两个特殊属性以及查询成绩这一方法,教师拥有部门和工资两个特殊属性以及查询工资这一方法,系统管理员可以添加学生和教师信息。

由于教师和学生个人信息不同,所以学生和教师重载基类的DisplayInfo方法。

(本例和教材一致,再次出现的目的是通过反复训练,理解继承的作用)

1)类的继承关系可以表示如下:

2)创建控制台应用程序,命名为SchoolManagement

3)创建名为User的基类,基类定义了用户名和密码属性,以及Login和DisplayInfo方法

usingSystem;

usingSystem.Collections.Generic;

usingSystem.Text;

namespaceSchoolManagement

{

publicclassUser

{

privatestringuserName;

//用户名

publicstringName

get{returnuserName;

}

set{userName=value;

privatestringpassword;

//密码

publicstringPassword

get{returnpassword;

set{password=value;

privatestringuserType;

//用户类型

publicstringUserType

get{returnuserType;

set{userType=value;

publicvoidLogin()

if(userName.Equals("

1"

)&

&

password.Equals("

))

DisplayPersonInfo();

publicvirtualvoidDisplayPersonInfo()//注意virtual关键字

Console.WriteLine("

姓名:

{0}"

userName);

用户类型:

userType);

}

2)创建名为Student的派生类,具备班级和成绩两个特殊属性,以及查询成绩的特殊方法,覆盖基类的显示个人信息方法

publicclassStudent:

User

privatestringclassID;

publicstringClassID

get{returnclassID;

set{classID=value;

privatefloatstuScore;

publicfloatStuScore

get{returnstuScore;

set{stuScore=value;

publicStudent()

UserType="

学生"

;

publicoverridevoidDisplayPersonInfo()

base.DisplayPersonInfo();

班级:

classID);

publicvoidCheckScore()

成绩:

this.stuScore);

3)创建名为Teacher的派生类,具备部门和工资两个特殊属性,以及查询工资的特殊方法,覆盖基类的显示个人信息方法。

publicclassTeacher:

privatestringdepartment;

//部门

publicstringDepartment

get{returndepartment;

set{department=value;

privatefloatsalary;

//工资

publicfloatSalary

get{returnsalary;

set{salary=value;

publicTeacher()

教师"

部门:

"

+this.department);

publicvoidcheckSalary()

工资:

+this.salary);

4)创建名为SysManager的派生类,具备插入学生信息和插入教师信息两个方法

publicclassSysManager:

publicSysManager()

管理员"

publicStudentInsertStudent()

Studentstu=newStudent();

stu.Name="

张郭郭"

stu.UserType="

stu.ClassID="

310730"

stu.StuScore=70;

returnstu;

publicTeacherInsertTeacher()

Teacherteacher=newTeacher();

teacher.Name="

李沙沙"

teacher.Department="

计算机系"

teacher.Salary=5000;

returnteacher;

5)在Program.cs的Main方法中调用以上类,测试效果如下:

classProgram

staticvoidMain(string[]args)

//系统管理员登录

SysManagersys=newSysManager();

sys.Name="

sys.Password="

sys.Login();

------------------------------"

);

//系统管理员录入学生和教师信息

Teacherteacher=sys.InsertTeacher();

Studentstu=sys.InsertStudent();

//显示教师信息,查询工资

teacher.DisplayPersonInfo();

teacher.checkSalary();

//显示学生信息,查询成绩

stu.DisplayPersonInfo();

stu.CheckScore();

6)最终运行效果如下

2.建立名为Shape的基类,要求是抽象类,在该类中提供一个publicabstractdoubleArea()的抽象方法,建立名为Circle的派生类,包括半径属性,实现面积计算,再建立一个名为Rectangle的派生类,包括长和宽两个属性,实现面积的计算。

程序如下:

usingSystem.Linq;

namespaceshape

请输入圆的半径:

doubler=double.Parse(Console.ReadLine());

shapes=newCircle(r);

圆的面积是:

s.Area());

请输入矩形的长和宽:

doublea=double.Parse(Console.ReadLine());

doubleb=double.Parse(Console.ReadLine());

shapef=newRectangle(a,b);

矩形的面积是:

f.Area());

Console.ReadLine();

publicabstractclassshape

{publicabstractdoubleArea();

 

publicclassCircle:

shape

privatedoubler;

publicdoubleR

{get{returnr;

}

set{r=value;

publicCircle(doubler)

{this.r=r;

publicoverridedoubleArea()

{return3.14*r*r;

publicclassRectangle:

privatedoublea;

publicdoubleA

{get{returna;

set{a=value;

privatedoubleb;

publicdoubleB

{get{returnb;

set{b=value;

publicRectangle(doublea,doubleb)

{this.a=a;

this.b=b;

{returna*b;

按ctrl+F5运行程序,结果如下:

实验总结(结论或问题分析):

通过实验详细的了解了有关定义抽象类和抽象类方法的注意事项,并且在抽象类中要使用关键字abstract。

抽象类方法没有实现代码,但该抽象类的派生类都必须重载该方法。

将派生类中的对应方法定义为重载方法,则使用override关键字修饰。

抽象类不能直接使用new关键字来直接创建对象,但可以将其与派生类的实例相关联。

实验成绩

任课教师签名

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > PPT模板 > 简洁抽象

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1