UAC2015W0408SourceUAC2015W0408章节.pptxVIP

  • 20
  • 0
  • 约1.77千字
  • 约 16页
  • 2017-11-27 发布于广东
  • 举报
第08课 多 态课程名称 Lesson Title多 态学习者等级 Learner Level 基础阶段模块 Module 编程进阶实战本课时长 Duration 90分钟学习者背景 Learner Background本课程要求学习者掌握继承的使用方式。教学目标 Objectives? 让学习者能够掌握多态的用法? 能够掌握继承与多态的区别? 能够掌握重载与重写的区别? 能够了解重写的本质主题 Topics 多态的定义 虚拟方法与重写方法 重写方法的实质 重载方法与重写方法的区别多态的定义多态性多态性是指同一事物在不同条件下可以表现出不同的形态,在面向对象的消息通信时,发送消息的对象并不一定要知道接收消息的对象属于哪一类;接收到消息之后,不同类型的对象可以做出不同的解释。主题 Topics 多态的定义 虚拟方法与重写方法 重写方法的实质 重载方法与重写方法的区别虚拟方法与重写方法在继承中,派生类的成员方法隐藏了基类的成员方法,那么程序会根据对象的声明类型而非实际类型来决定调用哪一个方法。实际类型声明类型Person p1 = new Student();虚拟方法与重写方法按照多态性的思想,客户并不一定要去了解服务器对象的详细信息,而是由这些对象根据自己的方式来提供服务。虚拟方法与重写方法在C#程序中,只要将基类的方法定义为虚拟方法(使用关键字virtual修饰),将派生类中的对应方法定义为重写方法(使用关键字override修饰),那么程序就能够根据对象的实际类型来决定调用哪一个方法。实际类型声明类型Person p1 = new Student();虚拟方法与重写方法 public class Person { public virtual void PrintInfo()//虚方法 { Console.WriteLine(Person); } } public class Student:Person { public override void PrintInfo()//重写方法 { Console.WriteLine(Student); } }虚方法关键字重写方法关键字主题 Topics 多态的定义 虚拟方法与重写方法 重写方法的实质 重载方法与重写方法的区别重写方法的实质在多层继承结构中,重写方法可以继续被派生类重写,也就是说,重写的本质也是一种虚拟方法。例如,一个Student的派生类University student和Primary?school也可以使用override修饰符来重载PrintInfo方法,而如果再定义Student的基类Person,其中使用了virtual修饰符来定义PrintInfo方法,那么Student中的PrintInfo方法的修饰符就应该为override。主题 Topics 多态的定义 虚拟方法与重写方法 重写方法的实质 重载方法与重写方法的区别重载方法与重写方法的区别区分方法的重载是指方法的名称相同而标识不同,重写方法则是指对基类中表示相同的虚拟方法的重写;二者有着类似的含义,即“同样的操作在不同的条件下可以产生不同的结果”。在面向对象的语义中,重写方法特指使用override关键字定义的方法。一个类中如果定义了重写方法,那么其基类中就必须有相同标识的虚拟方法,且二者的访问权限应当相同。此外,new关键字可用于隐藏基类的字段和方法,而virtual和override关键字仅限于修饰方法。重载方法与重写方法的区别注意事项使用virtual修饰该方法后,就不能再使用static、abstract或者override关键字。学生作业?理解继承与对态的区别。?定义一个磁盘类Disk及其派生类硬盘HardDisk、闪盘 Flash和光盘CD_ROM,在其中定义记录磁盘容量的字段,并通过虚拟方法和重载方法来模拟对磁盘内容的写入和删除。例如,学籍管理系统在每学期开始时会要求学生对象执行不同的“选课”操作,但系统在发送消息时并不需要区分学生的具体类型是本科生还是研究生,而不同类型的学生会自行确定自己的选课范围,因为“本科生”类和“研究生”类会各自定义不同的“选课”操作,多态性特征能够帮助我们开发灵活且易于修改的程序。

文档评论(0)

1亿VIP精品文档

相关文档