欢迎来到天天文库
浏览记录
ID:33549660
大小:250.44 KB
页数:12页
时间:2019-02-27
《面向对象程序设计【c#】_接口》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、面向对象程序设计基于.NET平台继承2011/3/23常熟理工计算机科学与工程学院1继承继承是软件复用的一种形式。使用继承可以复用现有类的数据和行为,为其赋予新功能而创建出新类。复用节省了程序开发时间,能重用经过实践检验和调试的高质量代码,提高系统的质量。在现有类(称为直接基类、父类)上建立新类(称为派生类、子类)的处理过程称为继承。子类自动获得父类的所有属性和方法,而且可以在子类中添加新的属性和方法。但构造和析构函数不能继承。2011/3/23常熟理工计算机学院杨剑勇2继承的创建语法通过继承创建
2、子类的语法是:<访问修饰符>class派生类名:基类名{//类的代码}访问性修饰类内部派生类符public访问不受限制不受限制访问仅限于包含类或从包含类派protected可以访问生的类型internal访问仅限于当前项目可以访问private访问仅限于包含类型不可访问2011/3/23常熟理工计算机学院杨剑勇3继承的基本关系1、IS-A关系:子类是父类的一个特类2、Extends扩充关系:子类拥有父类所没有的功能3、子类对象可以被当成父类对象使用;父类的对象不可以直接赋给子类的对象。如果需要需要
3、通过类型的强制转换进行赋值。子类对象变量=(子类名称)父类对象变量子类对象变量=父类对象变量as子类名称2011/3/23常熟理工计算机学院杨剑勇4继承的特性C#中的继承主要有以下3种特性。1.继承的可传递性构造函数和析构函数不能被继承。除此以外的其它成员,不论对它们定义了怎样的访问方式,都能被继承。基类中成员的访问方式只能决定派生类能否访问它们。派生类如果定义了与继承而来的成员同名的新成员,就可以覆盖已继承的成员。但这并不因为这派生类删除了这些成员,只是不能再访问这些成员。2011/3/23常熟
4、理工计算机学院杨剑勇5继承的特性2.继承的单一性继承的单一性是指子类只能从一个父类中继承,不能同时继承多个父类。C#不支持多重继承,也就是说儿子只能有一个亲生父亲,不能同时拥有多个亲生父亲。可以通过接口实现多重继承。3.继承中的访问修饰符前面的内容中讲到C#中访问修饰符有public、protectecd、private和internal4种,可以使用这些访问修饰符指定五个可访问性级别:public、protected、internal、internalprotected和private。2011
5、/3/23常熟理工计算机学院杨剑勇6继承中基类和子类方法的关系扩充(Extend):子类定义的方法在父类中没有同名的方法存在。重载(Overload):子类方法和父类的方法名一致,但是参数列表不一致。完全相同:子类和父类方法名同名。Hide—子类和父类方法完全一样。New—子类隐藏父类同名方法,提供自己新版本。2011/3/23常熟理工计算机学院杨剑勇7继承中基类和子类方法的关系重写(override)和虚方法:在父类同名方法名前面加一个virtual,表明这个是一个虚方法,子类可以重写此方法。在
6、子类的同名方法前加关键字override。使用虚方法调用,可以使只用同一个语句,在运行时根据对象类型而执行不同的操作。2011/3/23常熟理工计算机学院杨剑勇8继承-base的使用如果要继承父类的构造函数,必须使用base关键字来实现。C#中base关键字代表父类,使用base关键字可以调用父类的构造函数、属性和方法。使用base关键字调用父类构造函数的语法如下:子类构造函数:base(参数列表)2011/3/23常熟理工计算机学院杨剑勇9继承-base的使用base关键字用于从派生类中访问基类
7、的成员调用基类上已被其他方法重写的方法指定创建派生类实例时应调用的基类构造函数基类访问只能在构造函数,实例方法或实例属性访问器中进行。静态方法是不可以使用base关键字2011/3/23常熟理工计算机学院杨剑勇10继承的综合案例某公司员工的工资系统分为4种:固定工的周薪相同计时工按时计算工资(超过40小时要支付加班工资的)佣金员工按销售额的百分比提成底薪佣金员工是底薪加上销售额百分比2011/3/23常熟理工计算机学院杨剑勇11感谢您的关注感谢您的关注2011/3/23常熟理工计算
8、机科学与工程学院12
此文档下载收益归作者所有