C#多态浅析

在C#语言中多态称为运行时多态,也就是在程序运行时自动让父类的实例调用子类中重写的方法,它并不是在程序编译阶段完成的。

使用继承实现多态,实际上是指子类在继承父类后,重写了父类的虚方法或抽象方法。 在创建父类的对象指向每一个子类的时候,根据调用的不同子类中重写的方法产生了不同的执行效果。总而言之,使用继承实现多态必须满足以下两个条件。子类在继承父类时必须有重写的父类的方法。在调用重写的方法时,必须创建父类的对象指向子类(即子类转换成父类)。

实例根据不同层次(本科生、研究生)的学生打印出不同的专业要求。根据题目要求,创建专业信息的抽象类(Major),并在其中定义学号(Id)、姓名(Name),以及打印专业要求的抽象方法(Requirenwnt)。分别使用本科生和研究生类继承专业信息类,并重写其中的打印专业要求的方法。实现的代码如下。

class Program
{
static void Main(string[] args)
{
Major major1 = new Undergraduate();
major1.Id = 1; major1.Name = “张晓”;
Console.WriteLine(“本科生信息:”);
Console.WriteLine(“学号:” + major1.Id + “姓名:” + major1.Name);
major1.Requirement();
Major major2 = new Graduate();
major2.Id = 2; major2.Name = “李明”;
Console.WriteLine(“研究生信息:”);
Console.WriteLine(“学号:” + major2.Id + “姓名:” + major2.Name);
major2.Requirement();
Console.ReadLine();
}
}

abstract class Major
{
public int Id { get; set; }
public string Name { get; set; }
public abstract void Requirement();
}

Class Undergraduate :Major
{
public override void Requirement()
{
Console.WriteLine(“本科生学制4年,必须修满48学分”);
}
}

class Graduate : Major
{
public override void Requirement()
{
Console.WriteLine(“研究生学制3年,必须修满32学分”);
}
}

如下图所示
在这里插入图片描述
从上面的执行效果可以看出,创建父类的实例指向了不同的子类,在程序运行时会自动调用子类中重写后的方法内容,显示出本科生和研究生的要求信息。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值