《抽象类与接口》ppt课件

上传人:tian****1990 文档编号:74786434 上传时间:2019-01-29 格式:PPT 页数:23 大小:541.50KB
返回 下载 相关 举报
《抽象类与接口》ppt课件_第1页
第1页 / 共23页
《抽象类与接口》ppt课件_第2页
第2页 / 共23页
《抽象类与接口》ppt课件_第3页
第3页 / 共23页
《抽象类与接口》ppt课件_第4页
第4页 / 共23页
《抽象类与接口》ppt课件_第5页
第5页 / 共23页
点击查看更多>>
资源描述

《《抽象类与接口》ppt课件》由会员分享,可在线阅读,更多相关《《抽象类与接口》ppt课件(23页珍藏版)》请在金锄头文库上搜索。

1、抽象类与接口,本章内容,1.抽象类的概念、定义与应用 2.接口的概念、定义与应用 介绍几种常见的设计模式 3.抽象类与接口的比较 相同点 不同点,抽象类,包含有至少一个抽象方法的类称为抽象类,用abstract关键字修饰,不能创建自己的对象,抽象方法交由子类去覆盖(完成方法体)。 抽象方法:只有方法的头部,没有方法体。在继承抽象类的子类中来实现父类中的所有抽象方法(完成方法体部分)。,声明抽象方法与抽象类,权限修饰符 abstract returnType 方法名(paramlist); 说明:(1) 只有方法头部,没有方法体,以“;”结束。 (2) 构造方法不能声明为抽象方法。 例如: pu

2、blic abstract float getArea(); 权限修饰符 abstract class 类名称 成员属性; 方法(); /定义一般方法 构造方法(); abstract 方法(); /定义抽象方法 ,抽象类的作用,抽象类本身不能实例化,而抽象类的子类实现了抽象类的抽象方法,因此通常都是定义抽象类的引用指向子类的实例,自动完成向上转型,是对象多态性的一个很好体现。 AbstractClass ac=new AbstractClassImp();,抽象类应用举例,有三类图书:科技书、文艺书和教材。三类书的属性和方法如下图所示,请用抽象类的方式完成相关代码的编写。(图书价格=每页价格

3、*页码*折扣),/定义抽象类Book abstract class Book int bookPage; float discount; float pagePrice; / 定义三个成员属性 public Book(int bookPage,float discount,float pagePrice) this.bookPage=bookPage; this.discount=discount; this.pagePrice=pagePrice; abstract void showKind(); /显示图书种类 public float getPrice() return bookPag

4、e*discount*pagePrice; ,class ScienceBook extends Book /定义科技书 public ScienceBook(int bookPage,float discount,float pagePrice) super(bookPage,discount,pagePrice); public void showKind() /实现抽象方法 System.out.println(“The books type is science“); class ArtBook extends Book /定义文艺书 public ArtBook(int bookPa

5、ge,float discount,float pagePrice) super(bookPage,discount,pagePrice); public void showKind() /实现抽象方法 System.out.println(“The books type is art“); ,public class BookTest public static void main(String args) Book sb=new ScienceBook(520,0.7f,0.2f); sb.showKind(); System.out.println(getPrice(); Book tb

6、=new ArtBook(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出于安全性考虑,只支持单重继承,而不支持多重继承。 多重继承更能表达现实世界。 接口的作用: 配合继承解决Java无法多继承的缺点,提供方法声明与实现相分离的机制,使实现接口的各个类表现出多态性。 A a=new B(); (B是实现了接口A的类),接口的定义,一个接口的定义包含以下部分

8、: public interface MyInterface extends Interface1 public static final double E = 2.718282; public abstract void doSomething (int i, double x); public abstract int doSomethingElse(String s); ,访问控制符,接口关键字,接口名,接口可以继承接口,接口中可以定义常量,抽象方法,只声明不实现,接口的实现,接口的实现是交给类来完成的。 public class MyInterfaceImp extends 父类名 i

9、mplements 接口名 继承了接口中的常量 public void doSomething (int i, double x) public int doSomethingElse(String s) ,一个类可以实现多个接口,实现接口的抽象方法,添加方法体,接口的简单应用,定义一个测试类,分别创建圆形类和矩形类的对象,输出各自的面积和周长。,接口的高级应用-设计模式,设计模式针对面向对象系统中重复出现的设计问题,提出一个通用的设计方案,并予以系统化的命名和动机解释。设计模式描述了问题、解决方案、在什么条件下使用该解决方案及其效果。 解决方案是解决该问题的一组精心安排的通用的类和接口,再经

10、过定制和实现就可用来解决特定上下文中的问题。,代理模式,应用的场景:一个对象不想或者不能直接引用另外一个对象,那么通过代理可以在两者之间起到连接作用。,(1)抽象目标角色:声明真实目标对象和代理的共同接口。 (2)代理角色:内部包含对真实目标对象的引用。 (3)真实目标角色:是客户端真正要交流的对象,需要被代理。,适配器模式,使用场景:将一个类的接口(被适配对象)转换成客户希望调用的另外一个接口(目标)。,适配器模式,模式的三种角色: 目标(Target):客户想使用的接口。 被适配者(Adaptee):一个已经存在的接口或抽象类,需要被适配。 适配器(Adapter):是一个类,实现目标接口

11、并包含被适配者的引用。,接口的特点,(1)接口可以定义为多继承。类不能多继承。 interface A double getArea(); interface B String getName(); public interface C extends A,B String getAddress(); (2)接口没有最高层,类有最高层-Object,接口的特点,(3) 接口中的方法默认为public abstract;接口中的成员属性默认为public static final。 例如: double PI=3.14f; 系统默认为public static final double PI=3.14159; (4) 接口中的方法只能是抽象方法,不存在非抽象方法和构造方法。,抽象类与接口的比较-相同点,(1) 都包含抽象方法,必须被子类实现。 (2) 不能被实例化。 (3) 都是引用数据类型。可以声明抽象类及接口变量,并将子类的对象赋给抽象类变量。 AbstractClass ac=new AbstractClassImp(); 或将实现接口的类的对象赋给接口变量。 Interface interVarnew InterfaceImp();,抽象类与接口的比较-区别,

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号