编程思想第九章接口ppt课件.ppt

编程思想第九章接口ppt课件.ppt

ID:58869046

大小:232.00 KB

页数:92页

时间:2020-09-30

编程思想第九章接口ppt课件.ppt_第1页
编程思想第九章接口ppt课件.ppt_第2页
编程思想第九章接口ppt课件.ppt_第3页
编程思想第九章接口ppt课件.ppt_第4页
编程思想第九章接口ppt课件.ppt_第5页
资源描述:

《编程思想第九章接口ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第九章接口★抽象方法和抽象类★接口★策略设计模式和适配器设计模式一、抽象类和抽象方法1、抽象方法★使用关键字abstract修饰的方法称为抽象方法◆例如:abstractvoidf();★区别:方法的声明和方法的实现⑴方法的声明:◆abstractvoidf();⑵方法的实现◆abstractvoidf(){…};◆利用一对大花括号提供方法的实现一、抽象类和抽象方法2、抽象类⑴抽象类的概念★包含抽象方法的类称为抽象类一、抽象类和抽象方法⑵抽象类的用途★创建抽象类的目的在于:抽象类为它的所有导出类创建了一个通用接口◆不同的子类使用不同的方式实现此接口一、抽象类和抽象方法⑶抽象类的重要性质Ⅰ

2、不能为抽象类创建其对象★否则,编译器就会报错一、抽象类和抽象方法Ⅱ如果继承一个抽象类并试图创建该类的对象,那么就必须为基类中的所有抽象方法提供方法定义★如果不这么做(可选择不做),那么导出类便也是抽象类一、抽象类和抽象方法3、抽象类和抽象方法的典例★参见P170~171◆关键:结合图形分析(这样才能分析清楚其层次关系)★abstractclassInstrument//抽象类{privateinti;//抽象方法publicabstractvoidplay(Noten);publicabstractvoidadjust();publicStringwhat()//抽象类中可以包含非抽象方

3、法{return“Instrument”;}}★classWindextendsInstrument{//为基类抽象方法提供方法的实现publicvoidplay(Noten){print(“Wind.play()”+n);}publicvoidadjust(){}publicStringwhat()//覆盖基类继承下来的方法{return“Wind”;}}.....二、接口1、接口(Interface)的概念★在Java中,可以使用interface关键字来创建一个完全抽象的类◆区别:抽象类与接口二、接口2、接口的创建★接口是一种特殊的类,但在创建时使用interface关键字◆典例分

4、析(参见P173~174)★interfaceInstrument{//隐式为static&finalintVALUE=5;//只能有声明,不能有具体的定义和实现//缺省为publicvoidplay(Noten);voidadjust();}★归纳:1、接口也可以包含域,这些域隐式为static和final◆但现在很少在接口中包含域◆原因:见后分析2、只能有方法的声明,不能有具体的定义和实现◆也就是只允许创建者确定方法名、参数列表和返回类型,但是不能有任何的方法体★归纳:3、interface的访问权限控制有两种:◆Public◆缺省(包访问权限控制)4、interface中方法的访问

5、权限控制只有一种◆public(缺省),否则编译器报错二、接口3、接口的实现★要让一个类实现某个特定的接口或者是一组接口◆需要使用implements关键字★典例分析(参见P173~174)★classWindimplementsInstrument{//接口抽象方法的具体实现publicvoidplay(Noten){print(this+“.play()”+n);}//接口抽象方法的具体实现publicvoidadjust(){print(this+“.adjust()”);}//可以在派生类中增加新的方法publicStringtoString(){return“Wind”;}}.

6、....publicclassMusic4{staticvoidtune(Instrumenti){i.play(Note.MIDDLE_C);}//Instrumenti的含义并不是:利用Instrument类型来声明一个对象i,因为接口不能实例化//Instrumenti的含义是:声明这样的一个引用i,该引用指向实现了Instrument接口的类的实例staticvoidtuneAll(Instrument[]e){for(Instrumenti:e)tune(i);}//利用Foreach语法对Instrument数组进行存取publicstaticvoidmain(String[

7、]args){//声明一个数组orchestra(管弦乐队)//该数组是一个引用数组,用来指向实现了//Instrument接口的类的实例Instrument[]orchestra={//返回一个指向Wind对象的引用,该引用向上转型后添加到数组中newWind(),//管乐器//陆续向上转型并添加到数组中newPercussion(),//打击乐器newStringed(),//弦乐器newBrass(),//铜管newWoodw

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。