- 1、本文档共130页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
【是非题】6.8()多态性是面向对象程序设计语言的一个重要特性。6.9()不能声明一个抽象类的引用。6.10()抽象类不能用来实例化对象。6.11()抽象类只能用于继承。6.12()一个抽象类中一定要有抽象方法。6.13()一个抽象类中的所有方法都是抽象的。6.14()接口中的所有方法都是公共的、抽象的。技能训练【技能训练6-1】调试并运行案例6-1所示的程序,从键盘上输入你选择吃水果的顺序,查看并分析程序的运行结果。【技能训练6-2】编写一个程序,从键盘上输入某种商品的名称、单价的折扣率,输出该商品打折后的价格。要求使用Scanner类进行数据输入,对结果进行格式化输出。【技能训练6-3】定义一个立体几何形状类,定义该类的子类圆球类、正方体类和圆柱体类。参考案例6-2,实例化一些立体几何形状,求出其体积。程序要求如下:(1)立体几何形状类要定义成抽象类,其中要声明一个求体积的方法;(2)声明一个立体几何形状类的数组,并使用其子类的对象对数组元素赋值;(3)程序要体现Java语言中的多态性。【技能训练6-4】调试并运行案例6-3所示的程序。29 t.running();30 Fishf=newFish();31 f.swimming();32}33}该示例程序中定义了CanSwim和CanRun两个接口,实现了CanSwim接口的类表示能游泳,实现了CanRun接口的类表示能跑,龟(Turtle)既能游泳又能跑,所以实现了CanSwim和CanRun两个接口。一般的鱼(Fish)只会游泳,所以只实现了CanSwim接口。在Fish类与Turtle类中,对所实现接口中声明的方法进行了具体的定义,并且方法一定要用public修饰,否则会出现编译错误。这是因为Java语言中规定,在类中实现接口中定义的方法时,不能比接口中定义的方法有更低的访问权限。接口中定义的方法都是公共的,所以这些方法在实现接口的类中定义时,只能定义成公共的。注意:一个类只能有一个父类,但可以实现多个接口。如定义了一个动物类:classAnimal{…}则龟(Turtle)类可以定义为:classTurtleextendsAnimalimplementsCanSwim,CanRun{…}即Turtle类继承了Animal类,实现了CanSwim和CanRun两个接口。注意:如果一个类中没有实现接口中声明的所有方法,则这个类只能定义为一个抽象类。为了简单起见,Java语言不支持多重继承,即一个类不能有多个父类。如果在程序中确实要实现多重继承的机制,可以借助于接口来实现,因为一个类可以实现多个接口,如上例中的Turtle类。初学者在程序中使用接口时,应注意以下问题:●避免接口中所有的方法都用publicabstract修饰。●避免接口中所有的数据成员都用publicstaticfinal修饰(即为常量)。●接口中的数据成员在定义时必须有初值。●在类中实现接口中定义的方法时,必须用public修饰。●接口和抽象类一样,都不能用来创建实例对象。由于接口中定义的数据成员都是静态的和公共的常量,而静态数据成员属于类成员,因此在实现了接口的类中,可以直接以“接口名.常量名”的方式引用接口中定义的数据成员。6.3.2【案例6-3】可以飞行的类1.案例描述定义具有可飞行特性的类。该案例的目的是为了说明接口在程序中的应用和接口是如何实现多态性的。2.案例效果案例程序的执行效果如图6-6所示。从图中可以看出,鸟可以在空中飞行,飞机也可以在空中飞行。图6-6案例6-3的执行效果3.技术分析飞行并不是某类所专有的特性,鸟可以飞行,飞机也可以飞行,而鸟和飞机是两个互不相干的类,只不过它们都具有可飞行的特性。因此,可以定义一个具有“可飞行(Flyable)”功能的接口,在定义鸟类和飞机类时分别去实现“可飞行”这个接口。4.程序解析案例程序如下:01//******************************************02//案例:6-303//程序名:TestFlyable.java04//功能:定义可以飞行的类05//******************************************0607interfaceFlyab
文档评论(0)