ImageVerifierCode 换一换
格式:DOCX , 页数:18 ,大小:633.65KB ,
资源ID:6313894      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-6313894.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(28接口基本定义.docx)为本站会员(b****3)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

28接口基本定义.docx

1、28接口基本定义1、 课程名称:接口的基本定义2、 知识点2.1、上次课程主要内容1、抽象类的设计是在普通类之上的抽象类;2、抽象类关键的问题就是约定了子类必须要覆写的抽象方法;3、抽象类的使用原则: 抽象类必须有子类,子类利用extends 关键字来继承抽象类,一个子类只能继承一个父类; 抽象类的子类(如果不是抽象类),那么必须要覆写抽象类中的全部抽象方法; 抽象类可以利用对象的向上转型机制,通过子类对象进行实例化操作;2.2、本次预计讲解的知识点1、接口的基本定义以及使用形式:2、与接口有关的设计模式的初步认识;3、接口与抽象类的区别;3、具体内容()接口与抽象类相比,接口的使用几率是最高

2、的,所有的设计几乎都是围绕着接口进行的,但是要想把接口彻底弄明白,需要很长一段时间。3.1、接口的基本概念接口是一种特殊的类,但是在接口里面的组成与类不同,比类的组成部分简单,主要是由抽象方法与全局常量所组成。而接口使用interface关键字来定义。范例:定义一个接口interface A/定义了一个接口 public static final String MSG = Hello World.; public abstract void print();当一个接口定义完成之后,需要遵循如下的步骤进行接口的使用: 接口一定要定义子类,子类利用implements 关键字来实现接口,一个子类可

3、以同时实现多个接口;|-秒杀抽象类的单继承局限,一个抽象类只能够被一子类所继承; 接口的子类(如果不是抽象类),那么必须覆写接口中的全部抽象方法; 接口的对象利用子类对象的向上转型进行实例化操作;范例:使用接口interface A/定义了一个接口 public static final String MSG = Hello World.; public abstract void print();interface B public abstract void fun();class X implements A,B/此时的X子类同时实现了A和B两个父接口 public void print

4、() System.out.println(你好,嗨皮吗); public void fun() System.out.println(MSG); public class TestDemo public static void main(String args) X x = new X();/实例化子类对象 A a = x;/子类为父接口实例化 B b = x; /子类为父接口实例化 a.print(); b.fun(); 但是这个时候会有这样一种比较神奇的操作。范例:神奇XX操作public class TestDemo public static void main(String arg

5、s) A a = new X();/X子类为父接口A实例化 B b = (B)a;/我也不理解 b.fun(); B和A鸟关系都没有,但是可以转换,是因为X是子类。注意:关于接口的组成描述接口里面在定义的时候就已经明确的给出了开发要求:抽象方法和全局常量,所以以下两种接口的定义从本质上讲是完全一样的。完整定义:简化定义:interface A/定义了一个接口 public static final String MSG = Hello World.; public abstract void print();interface A/定义了一个接口 String MSG = Hello Worl

6、d.; void print();如果在定义接口方法的时候没有使用pulic,那么本质上也不是default权限,而默认就是public。很多时候为了防止一些开发者概念不清晰,所以以后建议大家在定义接口的时候永远都写上public,但是一般都去写abstract.interface A/定义了一个接口 String MSG = Hello World.; Public void print();现在程序之中出现有类、抽象类、接口,这几者之间的联系就需要注意了。一个普通类如果要实现接口又要继承抽象类,则一定采用先extends继承抽象类,再implements实现接口,格式:Class 子类 e

7、xtends抽象类implements 接口1,接口2,范例:观察子类的多继承interface A/定义了一个接口 String MSG = Hello World.; void print();abstract class B public abstract void fun();class X extends B implements A public void print(); public void fun();另外出了以上的结构之外,一个抽象还可以直接实现接口。范例:抽象类直接实现接口interface A/定义了一个接口 String MSG = Hello World.; vo

8、id print();abstract class B implements A/这个时候抽象类有两个抽象方法 public abstract void fun();class X extends B public void print(); public void fun();现在一定要知道,抽象类可以实现接口,但是反过来,接口可不能够继承抽象类,但是一个接口却可以使用extends关键字继承多个父接口。范例:接口多继承interface A/定义了一个接口public void printA();interface B public void printB();interface C ex

9、tends A,B/C是A与B的子接口 public void printC();class X implements C public void printA(); public void printB(); public void printC();虽然接口本身只能够有抽象方法和全局常量,但是内部的结构是不受到限制的,一个接口的内部可以继续定义内部类、内部抽象类、内部接口。如果一个内部接口上使用了static定义,那么之个内部接口就属于外部接口。范例:使用static定义内部接口interface A static interface B public void print(); clas

10、s X implements A.B public void print()总之对于接口的使用可以发现有如下几点: 接口避免了单继承局限,一个子类可以实现多个接口; 接口中的权限统一为public,方法都是抽象方法,90%情况下接口中很少定义全局常量; 所有的内部类结构都不受到定义语法的限制,static定义的一个内部接口就是外部接口;实际开发中接口的三个使用原则: 制订操作标准; 表示一种能力; 将服务器的远程方法视图提供给客户端;3.2、接口的实际应用-标准现实生活对于接口这个名词应该不陌生,USB接口、PCI接口、VGA接口、HDMI接口、DVI接口。以USB设备为主。描述一下接口的实际

11、作用。范例:首先要定义出的就是接口interface USB public void start(); public void stop();不管什么样的USB设备只要一连接到电脑上,那么就需要默认执行固定的操作。范例:电脑上提供有支持USB的操作插入点class Computer/电脑public void plugin(USB usb)usb.start();usb.stop();不管有多少个设备,电脑的plugin()方法里面只接收的是接口实例,那么操作的步骤就是固定的。范例:定义USB的子类class Flash implements USB public void start() S

12、ystem.out.println(开始使用U盘进行操作。); public void stop() System.out.println(U盘停止工作了。); 范例:键盘子类class Keyboard implements USB public void start() System.out.println(开始使用键盘输入信息。); public void stop() System.out.println(键盘停止工作了。); 现在的子类是按照严格的操作标准使用着。范例:程序调用处public class TestDemo public static void main(String

13、args) Computer c = new Computer(); c.plugin(new Flash();/传递U盘对象 c.plugin(new Keyboard();/传递键盘对象 此时如果有了接口标准,即便有几千万个子类,也是可以在一个接口上使用的。所以接口是定义我们的标准。如果说得再高级一点:接口可以连接两个不同的层。3.3、接口的应用-工厂设计模式(Factory,背)下面编写一段简单的代码,来一起观察一下为什么会存在有工厂设计模式。范例:观察程序定义interface Fruit/水果 public void eat();/吃class Apple implements Fr

14、uit public void eat() System.out.println(吃苹果。); public class TestDemo public static void main(String args) Fruit f = new Apple(); f.eat(); 代码有问题吗?这个代码没有语法错误,但是有一个设计上的缺失,如果说现在假设fruit增加了一个子类,并且主类想使用这个主类。interface Fruit/水果 public void eat();/吃class Apple implements Fruit public void eat() System.out.pr

15、intln(吃苹果。); class Cherry implements Fruit public void eat() System.out.println(吃樱桃。); public class TestDemo public static void main(String args) Fruit f = new Cherry(); f.eat(); 此时发现,如果要扩充程序却影响了客户端的执行,这样的设计就非常的不好了,那么如果要想解决这个问题,可以参加java可以移植性的原理: 不可移植性:程序操作系统; 可移植性:程序 JVM操作系统;范例:可以在客户端与接口之间引入一个中间层面试题

16、:请编写一个Factory程序interface Fruit/水果 public void eat();/吃class Apple implements Fruit public void eat() System.out.println(吃苹果。); class Cherry implements Fruit public void eat() System.out.println(吃樱桃。); class Factory public static Fruit getInstance(String className)/直接取得中间实例 if(apple.equals(className)

17、 return new Apple(); else if(cherry.equals(className) return new Cherry(); else return null; public class TestDemo public static void main(String args)/为了方便模拟调用 Fruit f = Factory.getInstance(args0); if(f!=null) f.eat(); 执行苹果操作:java TestDemo apple执行婴桃操作:java TestDemo cherry如果现在要想增加新的子类,那么不需要修改客户端,直接修

18、改工厂类即可。3.4、接口的应用-代理设计模式(Proxy,背)所谓的代理结构指的是在接口上的一种应用,一个接口有一个核心的操作主题,但是整个操作的过程之中,如果指依靠核心的操作主题是无法完成所需要功能的,那么需要有一个代理的主题。代理主题完成所有的与核心主题有关的概念。范例:还原代码interface Subject/核心操作主题 public void get();/核心操作class RealSubject implements Subject public void get() System.out.println(陶大爷取回了被强行霸占的1.5亿。); class ProxySubj

19、ect implements Subject private Subject subject;/代理的真实主题 public ProxySubject(Subject subject) this.subject = subject; public void prepare() System.out.println(【追讨前的准备】皮鞭、蜡烛、钉子、辣椒水.); public void get() this.prepare(); this.subject.get();/真实主题的讨债 this.destroy(); public void destroy() System.out.println

20、(【追讨后的收尾】分尸、藏匿.); public class TestDemo public static void main(String args)/为了方便模拟调用 Subject sub = new ProxySubject(new RealSubject(); sub.get(); 3.5、抽象类与接口的区别(面试题)到现在为止已经学习过了这么几个概念:抽象类、类、对象、接口,这些概念从开发上来讲什么关系呢?所有类的抽象使用的就是接口,而且接口避免了单继承的局限。面试题:抽象类与接口的一个区别?No.区别抽象类接口1定义关键字Abstract classinterface2组成属性、

21、常量、抽象方法、构造方法、普通方法抽象方法与全局常量3权限可以使用各种权限只能够是public4子类实现利用extends关键字可以继承一个抽象类利用implements关键字可以实现多人接口5关系抽象类可以实现多个接口接口不能够继承抽象类,接口却可以利用extends关键字实现接口的多继承6对象实例化依靠子类对象的向上转型实现抽象类或接口对象的实例化操作。7设计模式模版设计模式工厂设计模式、代理设计模式8操作局限单继承局限没有单继承局限通过以上几点比较可以发现,抽象类与接口实际上都可以限制子类必须要棋覆写的一个访法要求,但是抽象类本身具有单继承局限,所以日后开发过程之中,如果发现抽象类与接口都可以同时使用的时候,优先考虑接口,而且抽象类在实际的应用中往往是作为接口与普通类之间的过渡类使用。4、总结1、接口利用interface关键字定义,接口中定义方法的情况居多。2、接口利用对象向上转型实现接口对象的实例化操作,调用的方法是每个子类所覆写的方法;3、接口应用:标准(连接不同的两种类)、工厂设计模式、代理设计模式。

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2