C#实验指导4-1
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C# 4-1 类的继承与多态一实验目的要求
1、掌握类的继承
2、掌握用虚方法实现类的多态
3、掌握用抽象方法实现类的多态
二实验内容和步骤
在d:盘的根目录下,建立自己的文件夹c#,以备存放文件。
Circle c1:color is yellow,area is 12.5663706143592 Rectangular r1:color is blue,area is 18,perimeter is 18 Square sq1: color is green,area is 25,perimeter is 20
注意:子类继承了父类哪些成员,又扩展了哪些成员
2、练习虚方法的覆盖P89 【例4.3】。
3、练习利用虚方法的覆盖实现多态。在第1题中练基础上做题。填空并分析结果。
red Circle area is red
yellow Rectangular area is yellow
4、练习利用抽象方法的覆盖实现多态。将第3题中的虚方法改成抽象方法,其他地方做
相应修改。运行并分析结果。
5、输入并分析以下程序,理解用虚方法的覆盖实现多态。
class Person
{
protected string name;
public Person()
{
}
public Person(string n)
{
name=n;
}
public virtual void Cut();
{
Console.Write(name + "开始相应:"); }
}
class Doctor : Person
{
public Doctor(string n):base(n)
{
}
public override void Cut()
{
base.Cut();
Console.WriteLine("做手术");
}
}
class Stylist : Person
{
public Stylist(string n):base(n)
{
}
public override void Cut()
{
base.Cut();
Console.WriteLine("开始理发");
}
}
class Actor : Person
{
public Actor(string n):base(n)
{
}
public override void Cut()
{
base.Cut();
Console.WriteLine("停止表演");
}
}
class Program
{
static void Main(string[] args)
{
Person p1 = new Doctor("张三");
Person p2 = new Stylist("李四");
Person p3 = new Actor("王五");
p1.Cut();
p2.Cut();
p3.Cut();
Console.Read();
}
}
6、将第5题Person类中的虚方法改成抽象方法,其他地方做相应修改。运行并分析结果。