欢迎来到天天文库
浏览记录
ID:41196469
大小:541.51 KB
页数:23页
时间:2019-08-18
《《抽象类与接口》PPT课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、抽象类与接口本章内容1.抽象类的概念、定义与应用2.接口的概念、定义与应用介绍几种常见的设计模式3.抽象类与接口的比较相同点不同点抽象类包含有至少一个抽象方法的类称为抽象类,用abstract关键字修饰,不能创建自己的对象,抽象方法交由子类去覆盖(完成方法体)。抽象方法:只有方法的头部,没有方法体。在继承抽象类的子类中来实现父类中的所有抽象方法(完成方法体部分)。声明抽象方法与抽象类[权限修饰符]abstractreturnType方法名(paramlist);说明:(1)只有方法头部,没有方法体,以“;”结束。(2)构造方法不能声明为抽象方
2、法。例如:publicabstractfloatgetArea();[权限修饰符]abstractclass类名称{成员属性;方法();//定义一般方法构造方法();abstract方法();//定义抽象方法}抽象类的作用抽象类本身不能实例化,而抽象类的子类实现了抽象类的抽象方法,因此通常都是定义抽象类的引用指向子类的实例,自动完成向上转型,是对象多态性的一个很好体现。AbstractClassac=newAbstractClassImp();抽象类应用举例有三类图书:科技书、文艺书和教材。三类书的属性和方法如下图所示,请用抽象类的方式完成相
3、关代码的编写。(图书价格=每页价格*页码*折扣)文艺书类页码折扣每页价格显示种类显示图书价格科技书类页码折扣每页价格显示种类显示图书价格教材类页码折扣每页价格显示种类显示图书价格//定义抽象类BookabstractclassBook{intbookPage;floatdiscount;floatpagePrice;//定义三个成员属性publicBook(intbookPage,floatdiscount,floatpagePrice){this.bookPage=bookPage;this.discount=discount;this.p
4、agePrice=pagePrice;}abstractvoidshowKind();//显示图书种类publicfloatgetPrice(){returnbookPage*discount*pagePrice;}}classScienceBookextendsBook{//定义科技书publicScienceBook(intbookPage,floatdiscount,floatpagePrice){super(bookPage,discount,pagePrice);}publicvoidshowKind()//实现抽象方法{Syste
5、m.out.println("Thebook'stypeisscience");}}classArtBookextendsBook{//定义文艺书publicArtBook(intbookPage,floatdiscount,floatpagePrice){super(bookPage,discount,pagePrice);}publicvoidshowKind()//实现抽象方法{System.out.println("Thebook'stypeisart");}}publicclassBookTest{publicstaticvoidm
6、ain(Stringargs[]){Booksb=newScienceBook(520,0.7f,0.2f);sb.showKind();System.out.println(getPrice());Booktb=newArtBook(400,0.8f,0.3f);tb.price=tb.getPrice(400,0.8f);tb.showKind();System.out.println(getPrice());}}抽象类的实际应用如何在实际应用中定义抽象类?(1)提取子类共有的属性(可选项)(2)提取子类共有的方法(可选项)提取子类共有的
7、方法,但该方法的方法体子类各有不同,则此方法定义为抽象方法。(必须项)练习:学生有姓名、年龄和成绩属性;教师有姓名、年龄和职称属性;学生和教师都能讲话,但所讲的内容不同。采用抽象类的方式完成上述代码的编写。接口的定义现实世界的接口:两个不同物体之间相互交互所必须通过的一个中介,没有这个中介,两者无法交互。软件世界的接口:(1)狭义:某个程序设计语言所提供的API。(2)广义:人与软件交互的图形界面(GUI)。Java中的接口:一种特殊的“类”,只能包含常量和抽象方法,属于引用数据类型。接口的作用为什么要定义接口:Java出于安全性考虑,只支持
8、单重继承,而不支持多重继承。多重继承更能表达现实世界。接口的作用:配合继承解决Java无法多继承的缺点,提供方法声明与实现相分离的机制,使实现接口的各个类表现出多态
此文档下载收益归作者所有