- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
【JavaBase】09-面向对象之抽象与接口
Java程序设计与开发基础09 面向对象之抽象与接口Java Program Design Development Essential谢钟扬目录1抽象类2接口3接口与抽象的区别抽象类代码练习:根据如下类图,编码实现抽象类现象与思考: 形状(Shape)类,求周长(getPerimeter())和求面积(getArea())方法,无法写出具体的实现,因为不确定是何种具体的形状。对于这种现象: 方案1:形状(Shape)类中不写这两个方法,由子类去自行定义? 方案2:形状(Shape)类中这两个方法方法体留空,由子类去覆盖? 上述两种方案的区别在哪? 方案1意味着:形状类没有求周长和求面积的行为。如果将子类对象向上转型为形状对象使用的话,就不能进行求周长和求面积的操作。方案2意味着:形状类有求周长和求面积的行为,但是没有实现方法体,如果对一个形状类的对象调用这两个方法,什么也不做。抽象类我们希望:通过形状(Shape)类来指定所有的形状都可以求周长和面积。但是形状类本身并不会求周长和面积,只有其具体的某个子类知道如何求自己的周长和面积。为了防止形状类的对象去调用未知的求周长和面积的方法,要禁止形状类创建对象,而只允许其子类创建对象(因为只有子类才知道如何求自身的周长和面积)。抽象类抽象类的概念: 通过抽取共性得到的类,只将它作为派生其他类的基类,而不作为想使用的特定的实例类,这样的类称为抽象类。 对于抽象类中,只是为了说明其所有子类都能进行的动作,而作为其本身并无法确定如何进行的方法,称为抽象方法。抽象方法只有方法的声明,没有方法体。 在Java中,使用关键字abstract来表示抽象。 用abstract修饰类,则声明该类为抽象类,不允许创建实例。 用abstract修饰方法,则声明该方法为抽象方法,不允许有方法体。 如果一个类有抽象方法,则该类必为抽象类。 抽象类的子类必须覆盖其抽象方法。抽象类前述类图可修改为如下所示:抽象类Shape.javapublic abstract class Shape { String name; abstract double getPerimeter(); abstract double getArea();}Circle.javapublic class Circle extends Shape{ double radius; public Circle(double radius) { this.radius = radius; } double getPerimeter() { return 3.14 * 2 * radius; } double getArea() { return 3.14 * radius * radius; }}抽象类public static void main(String[] args) { Shape circle = new Circle(5号圆 , 5.0); System.out.println(circle.name + 的周长为: + circle.getPerimeter()); System.out.println(circle.name + 的面积为: + circle.getArea());}运行结果:抽象类代码练习:请完成矩形(Rectengle),三角形(Triangle),正方形(Square)类的编写,实现其求周长,求面积方法。代码练习:音乐(Music)类的演奏(tune(Instrument instrument))方法将调用参数指定的乐器类对象的演奏(play())方法,将音乐类的所有音符弹奏出来;请根据类图编码实现分别使用弦乐,管乐,打击乐演奏《两只老虎》。接口思考题: 轿车(Car)类、卡车(Truck)类,船(Ship)类,飞机(Aircraft)类都是交通工具(Vehicle)类的子类。其中,只有飞机类有飞行(fly())方法和着陆(land())方法。 狗(Dog)类,鱼(Fish)类和鸟(Bird)类都是动物(Animal)类的子类,其中,鸟类有飞行(fly())方法和着陆(land())方法。 请按照类图编写代码接口思考题: 人(Person)类有飞去(flyTo())方法,通过参数指定乘坐某个能飞的对象,到达某处。其中,能飞的对象可以是飞机(Aircraft)类的对象,也可以是鸟(Bird)类的对象。 此时,flyTo()方法的参数该如何指定其类型?需要一个新的类型:能飞的(Flyable)来作为参数的类型。创建一个Flyable类,让Aircraft和Bird继承Flyable? 由于Java的继承必须为单继承,即一个类只能有一个超类;如果让Aircraft和Bird继承F
您可能关注的文档
- 《道德经》的幸福智慧2016.ppt
- 《郝斌开发经验(java)》.doc
- 《邓稼先》课件4.ppt
- 《迎中秋、感恩情》主题班会.ppt
- 《道路工程》第八-4章.ppt
- 《重金悬赏》大型创投节目策划案.ppt
- 《醉翁亭记》精选课件.ppt
- 《道路工程》第九-2章.ppt
- 《醇酚》教案(第二课时).ppt
- 《醉花阴》ppt课件(33页).ppt
- 【32m移动模架】使用说明书.doc
- 【PPT】接地和电气安全.ppt
- 【ZKSTTJ】2016年中考思想品德(重庆版)热点专题突破:专题12 投身家乡建设 畅享宜居重庆(共41张PPT).ppt
- 【S】002--解析几何第二讲--两条直线之间的位置关系【学生版本】.docx
- 【ZKSTTJ】2016年中考思想品德(重庆版)热点专题突破:专题5 创新驱动发展 科技引领未来(共40张PPT).ppt
- 【SQDH】2015-2016学年(人教版)八年级语文下册:3.我的第一本书ppt 习题课件.ppt
- 【SQDH】2015-2016学年(人教版)八年级语文下册:2.我的母亲ppt 习题课件.ppt
- 【SQDH】2015-2016学年(人教版)八年级语文下册:25 诗词曲五首.ppt
- 【中考历史热点专题复习】~4C672.doc
- 【中考夺冠】2016中考(陕西)总复习时政热点专题课件:热点5 科技振兴中华 创新引领发展(共25张PPT).ppt
有哪些信誉好的足球投注网站
文档评论(0)