全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第9章 实现抽象图形抽象类与接口能力目标:1. 理解关键字abstract、sealed、virtual、override,能编写抽象类和密封类。2. 理解接口类型,能定义接口、实现接口。3. 能编写含面积和周长抽象方法的图形抽象类及其派生的圆和矩形密封类。4. 能编写含面积和周长方法的图形接口、以及实现接口的圆和矩形密封类。9.1 项目预览本章要完成的实现图形抽象类与接口的WPF应用程序项目,运行界面如图9-1所示。 (a) (b)图9-1 实现图形抽象类与接口的WPF项目运行界面9.7 本章小结本章中,我们学习了使用关键字abstract声明的抽象方法和抽象类。抽象方法是没有方法体、不能执行的方法,除了抽象方法,还有抽象属性等成员。抽象类是不能实例化的类,抽象类通常有抽象成员,但极端情况也可没有。不过,具有抽象成员的类一定是抽象类。密封类是使用关键字sealed声明的。密封类与抽象类是类类型的两个极端,相互不兼容。定义抽象类是为了派生,由派生的子类实现其抽象成员。而密封类则不允许派生,类的继承链条到密封类就终结了。类可声明为密封的,类内部的成员也可声明为密封的,如密封方法和密封属性等。密封成员不能被派生类重写。密封成员不一定在密封类中。密封类可以有密封成员,非密封类也可包含密封成员。还有,密封成员一定是继承基类的重写成员,是成员的最后一次实现。就是说,对于类成员,sealed总是和override一起使用的。除了抽象类,我们还学习了功能与之相似的接口类型。它们均是抽象编程的机制,都支持协定与实现相分离,区分开做什么(what)和怎么做(how)。但接口是另外一种类型,不属于类类型。接口的成员都是默认抽象和公共的。接口在继承方面也比类复杂,接口支持多重继承,类则是单一继承。接口与类的关联是:由类实现接口。类似于类之间的继承,实现接口的类,要把承接过来的所有抽象接口成员都代码化、都能执行、即都实现了才行。与接口之间的多重继承类似,实现接口的类也可同时实现多个接口。现把本章的知识点归纳为表9-1。表9-1 本章知识点归纳知识点操作示例抽象方法与抽象类 abstract class Shape /抽象图形类 public abstract double CalcArea(); /抽象的计算面积方法 public abstract double CalcGirth(); /抽象的计算周长方法 密封类 sealed class Circle : Shape . /继承抽象图形类的密封圆类密封方法public sealed override double CalcArea() . public sealed override double CalcGirth() . 密封属性 public sealed override double Width get . set . 接口类型 interface IShape /图形接口 double CalcArea(); /计算面积方法(默认公共抽象的) double Girth get; /只读周长属性(默认公共抽象的) 接口多重继承 interface IA . interface IB . interface IC : IA, IB . 实现多个接口 class E . class F : E, IA, IB . 有了这些知识,就可以建立本章开头的项目了。9.8 项目实训9:实现图形抽象类与接口能力目标:(见本章开头)实训内容及步骤:1. 创建一个WPF应用程序项目,编写图形抽象类,内含计算周长和面积的抽象方法。再编写继承图形抽象类的密封圆类和矩形类。最后设计一个界面,用于计算圆、矩形的周长和面积。设计界面如图9-9(a)所示,运行界面如图9-1(a)所示。 (a) (b)图9-9 实现图形抽象类与接口的WPF项目设计界面提示:部分代码参考如下。 abstract class Shape /抽象的图形类 abstract public double CalcArea(); /抽象的计算面积方法 . class Rectangle : Shape /继承抽象图形类的矩形类 public double Length /长度属性 get return _length; set if (value 0) throw . else . public override double CalcArea() . /重写继承基类的抽象方法 . sealed class Circle : Shape /继承抽象图形类的密封圆类 . . private void buttonCircle_Click(object sender, RoutedEventArgs e) try double radius = double.Parse(textBoxRadius.Text); Circle aCircle = new Circle(radius); textBoxCircleInfo.Text = 成功构造了半径为 + aCircle.Radius + 的圆。; textBoxCircleInfo.Text += n + 圆面积: + . . catch (Exception ex) textBoxCircleInfo.Text = 异常: + ex.Message; 2. 在上题项目中,添加一个WPF窗口,编写图形接口,内含计算周长和面积方法。再编写实现该接口的密封圆类和矩形类。最后设计一个界面,用于计算圆、矩形的周长和面积。设计界面如图9-9(b)所示,运行界面如图9-1(b)所示。提示:本题界面大部分与第1题相同,可直接复制、粘贴过来。部分代码参考如下。 interface IShape /图形接口 double CalcArea(); /接口成员方法(默认抽象公共的) . class Rectangle2 : IShape /实现图形接口的矩形类 . .3.(选做)创建一个Windows应用程序项目,实
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 标准化PBL案例库在内科规培中的应用
- 极端高温下血液成分分离速度优化
- 护士长年终述职报告
- 河北省邯郸市大名县2025-2026学年八年级下学期期中考试道德与法治试卷(含答案)
- 26年骨病灶疗效评估规范指引
- Unit 5.Clothes说课稿-2025-2026学年小学英语三年级下册广东版(开心英语)
- 安徽省宿州市泗县2025-2026学年七年级下学期期中质量检测生物试卷 (含答案)
- 26年DRG下基因检测成本管控指南
- 初中劳动教育说课稿
- 2026年汪明荃歌曲说课稿
- 2026福建福州开大学川智慧教育科技有限公司招聘财务主管笔试参考题库及答案解析
- 2026下半年湖南益阳市资阳区事业单位招聘工作人员16人易考易错模拟试题(共500题)试卷后附参考答案
- 2026浙江杭州市西湖区人民政府西溪街道办事处招聘编外合同制工作人员2人笔试模拟试题及答案解析
- 环氧彩砂自流平地坪施工及验收规范
- 2026年科目1驾驶技术模拟题库及完整答案详解
- 六化建设培训
- 2026年甘肃省平凉市辅警人员招聘考试真题解析含答案
- TSG08-2026《特种设备使用管理规则》全面解读课件
- 《2026年化学制药企业安全风险防控专项工作方案》解读
- 中学生面试礼仪培训
- 四川绵阳科技城发展投资(集团)有限公司招聘笔试题库2026
评论
0/150
提交评论