- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《C# 3.0项目导向与实训程序设计教程》第9章实现抽象图形——抽象类与接口
第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(); //
文档评论(0)