C 项目导向与实训程序设计教程实现抽象图形-抽象类与接口_第1页
C 项目导向与实训程序设计教程实现抽象图形-抽象类与接口_第2页
C 项目导向与实训程序设计教程实现抽象图形-抽象类与接口_第3页
C 项目导向与实训程序设计教程实现抽象图形-抽象类与接口_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第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本章知识点归纳知识点操作示例抽象方法与抽象类abstractclassShape//抽象图形类{publicabstractdoubleCalcArea();//抽象的计算面积方法publicabstractdoubleCalcGirth();//抽象的计算周长方法}密封类sealedclassCircle:Shape{...}//继承抽象图形类的密封圆类密封方法publicsealedoverridedoubleCalcArea(){...}publicsealedoverridedoubleCalcGirth(){...}密封属性publicsealedoverridedoubleWidth{get{...}set{...}}接口类型interfaceIShape//图形接口{doubleCalcArea();//计算面积方法(默认公共抽象的)doubleGirth{get;}//只读周长属性(默认公共抽象的)}接口多重继承interfaceIA{...}interfaceIB{...}interfaceIC:IA,IB{...}实现多个接口classE{...}classF:E,IA,IB{...}有了这些知识,就可以建立本章开头的项目了。9.8项目实训9:实现图形抽象类与接口能力目标:(见本章开头)实训内容及步骤:1.创建一个WPF应用程序项目,编写图形抽象类,内含计算周长和面积的抽象方法。再编写继承图形抽象类的密封圆类和矩形类。最后设计一个界面,用于计算圆、矩形的周长和面积。设计界面如图9-9(a)所示,运行界面如图9-1(a)所示。(a)(b)图9-9实现图形抽象类与接口的WPF项目设计界面提示:部分代码参考如下。abstractclassShape//抽象的图形类{abstractpublicdoubleCalcArea();//抽象的计算面积方法...}classRectangle:Shape//继承抽象图形类的矩形类{publicdoubleLength//长度属性{get{return_length;}set{if(value<0){throw...}else{...}}}publicoverridedoubleCalcArea(){...}//重写继承基类的抽象方法...}sealedclassCircle:Shape//继承抽象图形类的密封圆类{...}...privatevoidbuttonCircle_Click(objectsender,RoutedEventArgse){try{doubleradius=double.Parse(textBoxRadius.Text);CircleaCircle=newCircle(radius);textBoxCircleInfo.Text="成功构造了半径为"+aCircle.Radius+"的圆。";textBoxCircleInfo.Text+="\n"+"圆面积:"+......}catch(Exceptionex){textBoxCircleInfo.Text="异常:"+ex.Message;}}2.在上题项目中,添加一个WPF窗口,编写图形接口,内含计算周长和面积方法。再编写实现该接口的密封圆类和矩形类。最后设计一个界面,用于计算圆、矩形的周长和面积。设计界面如图9-9(b)所示,运行界面如图9-1(b)所示。提示:本题界面大部分与第1题相同,可直接复制、粘贴过来。部分代码参考如下。interfaceIShape//图形接口{doubleCalcArea();//接口成员方法(默认抽象公共的)...}classRectangle2:IShape//实现图形接口的矩形类{...}...3.(选做)创建一个Windows应用程序项目,实现第1、第2题的功能。

第9章实现抽象图形——抽象类与接口 19.1项目预览 19.2抽象方法与抽象类 19.3密封类 39.4密封方法与密封属性 49.5接口类型 79.6接口多重继承与

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论