C#中的封装继承多态接口

上传人:夏** 文档编号:457742450 上传时间:2023-09-09 格式:DOCX 页数:30 大小:21.35KB
返回 下载 相关 举报
C#中的封装继承多态接口_第1页
第1页 / 共30页
C#中的封装继承多态接口_第2页
第2页 / 共30页
C#中的封装继承多态接口_第3页
第3页 / 共30页
C#中的封装继承多态接口_第4页
第4页 / 共30页
C#中的封装继承多态接口_第5页
第5页 / 共30页
点击查看更多>>
资源描述

《C#中的封装继承多态接口》由会员分享,可在线阅读,更多相关《C#中的封装继承多态接口(30页珍藏版)》请在金锄头文库上搜索。

1、C#是一种现代的面向对象的语言.继承(in herita nee):继承是一个面向对象的词语说明,一个类(派生类)能分享,其它类(基类)的特征 和行为派生类和基类是is a的关系.base elasses(基类):通常基类可以自己实例化,或被继承派生类继承基类中的成员,被标记为protected或更大的权限.语法:class (derive class n ame):(base class n ame)例子:基类public class Con tact默认私有的字段str ing n ame;stri ng email;stri ng address;构造函数public Con tact(

2、) / stateme nts .属性public str ing Namegetreturn n ame;setn ame = value;public stri ng Email getreturn email;setemail = value;public stri ng Address getretur n address;setaddress = value;派生类public class Customer : Con tact自己的私有字段stri ng gen der;decimal in come;public Customer()/ stateme nts .在上面的例子中C

3、ustomer是Contact的子类,不但,继承了父类的成员,name,email,address还有自己的成员,gender,income.abstract classes(抽象类):抽象类是一种特殊的基类.除过普通的类成员,它们还有抽象的类成员. 抽象类成员,是不能被实例化的方法和属性所有直接从抽象类派生的类,必须实现抽象的方法和属性抽象类 不能被实例化.例子: 抽象类abstract public class Con tactP; :/ stateme nts.抽象方法public abstract void gen erateReport();抽象属性abstract public s

4、tri ng Nameget;set;stri ng gen der;decimal in come;int n umberOfVisits;一public override void gen erateReport()p_getn umberOfVisits+;setiint siteHits;stri ng mySite;/ stateme nts.public override void gen erateReport()/ unique reportpublic override stri ng NamegetsiteHits+;setn ame = value;上面的例子,定义了三个

5、类一个抽象类,两个派生类实现了父类的方法和属性.override修饰符,实现了抽象类的方法.Calli ng Base Class Members(调用基类成员)派生类能调用基类成员,如果,成员的修饰符是protected或更大权限在适当的上下文条件下,好像调用自己的成员一样.例子:private str ing address;private stri ng city;private string state;private str ing zip;public str ing FullAddress()一address + n +city + , + state + + zip;publi

6、c class Customer : Con tacts_/ do some other stuff.:urnful1Address;上面的_基类的构造函数,可以被派生类调用,用base().例子:private str ing address;tss;public class Customer : Con tactpublic Customer(stri ng address) : base(address)例子中,派生类没有address成员,可以调用基类的构造函数.Hidi ng Base Class Members(隐藏基类成员)派生类可以和基类有同样名字的成员这时,就会隐藏基类的成员

7、. 例子:abstract public class Con tactprivate str ing address;private stri ng city;private string state;private str ing zip;public str ing FullAddress()stri ng fullAddress =address + n +city + , + state + + zip;return fullAddress;public class SiteOw ner : Con tactpublic str ing FullAddress()stri ng ful

8、lAddress;/ create an address.return fullAddress;在例子中,派生类和基类有同样的成员,FullAddress(),当调用时,基类的方法会被隐藏.尽管基类的成员被隐藏,仍然可以访问基类的成员,通过,base关键字,调用基类的引用.例子:private str ing address;private stri ng city;private string state;private str ing zip;public str ing FullAddress()一address + n +city + , + state + + zip; r/ do

9、some other stuff.:Address;在例子中,派生类调用基类的成员,用base引用visio nin g(版本)例子:using System;public str ing SiteName;public str ing URL;public str ing Descripti on;public WebSite( string strSiteName, string strURL, string strDescription )URL = strURL;public override str ing ToStr in g()e + , +URL + , ” +public s

10、tri ng address;public stri ng city;public stri ng state;public stri ng zip;public str ing FullAddress()一address + n +city + , + state + + zip;;int siteHits;str ing n ame;WebSite mySite;mySite = new WebSite();siteHits = 0;lySite aSite.URL,aSite.Descripti on);Name = aName;:e_ss();public str ing Namege

11、tsiteHits+;setn ame = value;Web_http:www. LeF inan ,Fancy Financial Site);SiteOw ner anOwner = new SiteOw ner(Joh n Doe, mySite);stri ng address;anOwner.address = 123 Lane Lane;anOwn er.city = Some Tow n;anOwn er.state = HI;anOwn er.zip = 45678;address = anOwn er.FullAddress(); / Differe nt ResultsC

12、onsole.WriteLine(Address: n0n, address);例子中,派生类用new修饰符,说明,和基类有同样名字的成员.sealed classed(密封类)密封类是不能被继承的类为了避免从一个类中继承,就要生成密封类. 例子:密封类public sealed class CustomerStatsstri ng gen der;decimal in come;int n umberOfVisits;public CustomerStats() public class Customerl nfo : CustomerStats / errorpublic class Cu

13、stomerCustomerStats myStats; / okay例子中,密封类不能被继承.封装(En capsulatio n):封装是一个面向对象的概念,对外部世界,隐藏类的内部.封装优点:1好的封装能减少耦合.2类的内部的实现可以自由改变.3.一个类有更清楚的接口.Data Hid in g(数据隐藏):封装的一个最有用的形式是数据隐藏.一个类的数据表现一个对象的状 态.修饰符支持封装:Private:只有类本身能存取.Protected:类和派生类可以存取.In ter nal:只有同一个项目中的类可以存取.Protected In ter nal:是 Protected 和 In

14、 ter nal 的结合.Public:完全存取.other En capsulati ng Strategy:(其他封装策略)属性和索引器的目的是封装一个类的细节和给类 的用户提供一个公共的接口.封装和继承的关系:封装的意思是包容(聚合),类与类之间的关系是has a. 一个类里面有另一个类.继承,类与类之间的关系是is a.多态(Polymorphism):就是怎样重载一个虚拟类.多态是面向对象的重要概念.Impleme nti ng Polymorphism 实现多态):例子:using System;public class WebSitepublic str ing SiteName;public str ing URL;public str ing Descripti on;public WebSite()pub

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号