类的封装、继承与多态.ppt

类的封装、继承与多态.ppt

ID:52340421

大小:1.21 MB

页数:41页

时间:2020-04-04

类的封装、继承与多态.ppt_第1页
类的封装、继承与多态.ppt_第2页
类的封装、继承与多态.ppt_第3页
类的封装、继承与多态.ppt_第4页
类的封装、继承与多态.ppt_第5页
资源描述:

《类的封装、继承与多态.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、C#面向对象编程(二)继承、封装和多态9继承、封装和多态9.1封装9.2继承9.3多态9.4this和base关键字9.5接口9.1封装对象的原理什么是封装(encapsulation)封装的好处良好的封装能够减少耦合类内部的实现可以自由地修改类具有清晰的对外接口类的封装改变了用户传统的使用数据和代码的方式.它将方法和数据包含在一起构成一个独立的单元,可以通过设定单元内各个成员的的特性来控制对成员的访问。比如将一个字段定义为private,就可以防止外界直接访问这个字段。数据隐藏封装性最有用的方式之一实现方法——访问限制修饰符public无

2、限制,允许任何人来访问protectedinternal=protected+internalInternal允许项目或程序内部的类来访问protected继承时子类可以对基类有完全访问权private只允许同一个类中的成员访问属性也用来封装类的细节,并提供公用接口给该类的用户publicclassStudent{privatestringstudentname;publicstringgetstudentname(){return(studentname);}publicstringsetstudentname(stringna){stu

3、dentname=na;}}classApp{publicstaticvoidMain(){Students1=newStudent();s1.setstudentname(“zhanghua”);Console.WriteLine(s1.getstudentname());}}不能使用语句s1.studentname=“zhanghua”;继承性(inheritance)一个类可以有能力直接从另一个类获得其代码和数据派生类从基类那里获得其所有的成员例:GUI设计的Formlookandfeel都是从.NETFormclass继承下来的Sy

4、stem.Windows.Forms.FormForm1继承透视图如果ClassChild是继承ClassParent而来Child的对象中包含一个Parent的对象ChildParentpublicclassParent{publicintX;...}publicclassChild:Parent{publicintY;...}//client...Childobj;obj=newChild();obj.X=10;obj.Y=20;X:Y:public methods如何访问基类成员?派生类可以调用基类的方法通过使用base关键字派生类在

5、访问基类的时候有一定的限制,不能访问private的成员;internal的基类成员只能被同一个程序集中的派生类访问publicclassAccount{publicdoublebalance;publicboolWithdraw(doubleamt){balance-=amt;returntrue;}}publicclassCheckAccount:Account{publicboolWithdraw(doubleamt){if(amt<=base.balance)returnbase.Withdraw(amt);elsereturnfa

6、lse;}}继承2-1ClassBase{//成员变量intbasevar;//成员函数Base_fun1(){//定义}…….…….ClassDerived:Base{//成员变量intderivedvars;//成员函数Derived_fun1(){//定义}…….…….基类voidmain(){Deriveddr_obj=newDerived();dr_obj.Base_fun1();}无需重新编写代码派生类狗马继承2-2动物基类派生类继承的层次结构示例ClassAnimal{//成员变量inteyes,nose;Animal(){e

7、yes=2;nose=1;}voidPet_Animal(){//定义}}基类ClassDog:Animal{//成员变量//成员函数privateBarking(){//定义}privateWagging_Tail(){}}派生类继承C#中的类publicclassGraduate:Student,Employee{//成员变量//成员函数}多重继承允许多重接口实现XC#只允许单一继承演示publicclassPerson{privatestring_name;privateuint_age;publicvoidGetInfo(){Con

8、sole.WriteLine("请输入您的姓名和年龄");_name=Console.ReadLine();_age=uint.Parse(Console.ReadLine())

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

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

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