基于C#语言进行面向对象编程(二)课件.ppt

基于C#语言进行面向对象编程(二)课件.ppt

ID:56980572

大小:2.37 MB

页数:40页

时间:2020-07-25

基于C#语言进行面向对象编程(二)课件.ppt_第1页
基于C#语言进行面向对象编程(二)课件.ppt_第2页
基于C#语言进行面向对象编程(二)课件.ppt_第3页
基于C#语言进行面向对象编程(二)课件.ppt_第4页
基于C#语言进行面向对象编程(二)课件.ppt_第5页
资源描述:

《基于C#语言进行面向对象编程(二)课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第二章继承、多态继承继承的基本概念base关键字protected访问修饰符继承的特点多态多态的基本概念抽象类 抽象方法及实现虚方法以及方法的重写判断对象类型里氏替换原则本章目标代码冗余对比这两个类:Student和Teacher加入校长、班主任的类,都需要加入这几个属性,代码冗余。年龄、性别、姓名是重复的如何共用重复代码?提取冗余代码将公共的成员放到一个类中保留自己特有的成员保留自己特有的成员提取后的应用classStudent:Person{publicStudent(){}//爱好privatestri

2、nghobby;publicstringHobby{get{returnhobby;}set{hobby=value;}}…}1、提取后的Student类只有学员特有的属性2、创建一个学员对象Studentzhang=newStudent();zhang.Name="张靓靓";zhang.Age=20;zhang.Gender=Genders.Female;zhang.Hobby="唱歌歌";公共属性可以访问继承卡车和巴士都是汽车生活中的继承汽车刹车行驶共有行为:轮子发动机共有特征:卸货拉货各自行为:载重货舱

3、各自特征:停靠站报站各自行为:载客量客舱各自特征:他们共有的特征来自汽车有什么共同特征呢?卡车公共汽车继承的基本概念——父类和子类在C#中,一个类可以继承另一个类Person子类继承父类,父类派生子类学员和老师类都继承PersonStudentTeacher子类父类Student类继承Person类Person类派生Student类子类又叫派生类父类又叫基类classStudent:Person继承概述继承需要符合的关系:is-aStudentisaPerson子类继承父类的成员子类可以有自己的成员继承父类的

4、成员自己特有的成员继承是面向对象的一个重要特性继承在类图中的表示继承的实际应用1班上所有的人都做自我介绍SayHi()学员大家好,我是某某同学,今年多少岁,喜欢什么老师大家好,我是某某老师,今年多少岁,工作几年了子类中访问继承父类的公共属性子类特有属性继承的实际应用2公共属性加入父类有独自的SayHi继承的实际应用3Teacher和Student类都继承PersonpublicclassStudent:PersonpublicclassTeacher:PersonpublicStudent(stringnam

5、e,Gendersgender,intage,stringhobby,intpopularity){this.Name=name;this.Age=age;this.Gender=gender;//学生类扩展的属性this.Hobby=hobby;this.Popularity=popularity;}构造函数设置公共属性与独有属性继承自父类的公共属性子类扩展的属性继承的实际应用4都有不同的SayHi方法publicvoidSayHi(){//学生的SayHi}publicvoidSayHi(){//老师的S

6、ayHi}创建对象调用SayHiStudentzhang=newStudent(…);Teacherjacky=newTeacher(…);zhang.SayHi();jacky.SayHi();学生调用自己的SayHi老师调用自己的SayHibase关键字关键字base的作用调用父类的属性和方法调用父类的构造函数publicvoidSayHi(){stringmessage=string.Format("大家好,我是{0}同学,今年{1}岁了,我喜欢{2}!",base.Name,base.Age,this

7、.hobby);MessageBox.Show(message);}调用父类的属性publicStudent(stringname,Gendersgender,intage,stringhobby,intpopularity):base(name,age,gender){//学生类扩展的属性this.Hobby=hobby;this.Popularity=popularity;}this.Name=name;this.Age=age;this.Gender=gender;调用父类的构造函数隐式调用父类的构造函

8、数Person类中去掉了构造函数publicPerson(){}“Person”方法没有采用“0”个参数的重载classStudent:Person{publicStudent(){}publicStudent(stringname,Gendersgender,intage,stringhobby,intpopularity)}base()隐式的调用base()子类的构造函数没有使用base指明调用

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。