java学习路线__面向对象__接口的定义与使用__13

接口的定义与使用

一:接口基本概念

接口(英文:Interface),在JAVA编程语言中是一个抽象类型,是抽象方法的集合,接口通常以interface来声明。一个类通过继承接口的方式,从而来继承接口的抽象方法。

抽象类的缺点:单继承

接口的优点:多实现

接口是抽象方法和全局常量的集合  接口只有 静态全局常量 和 抽象方法

子类要想实现接口 需要使用 implements来实现接口 使用逗号分开

为了解决抽象类的单继承局限可以通过用接口来实现“多继承”的概念

二:接口使用限制

接口中的方法的  abstract  可以省略,而抽象类中不能省略

子类实现抽象类和接口继承的顺序: 子类 extends 一个抽象类 implements 多个接口(逗号分开)

一个抽象类可以使用  implements  去实现多个接口

一个接口可以使用  extends 来继承多个父接口 , 却不能继承抽象类

接口可以定义一系列的内部接口:内部普通类 内部抽象类 内部接口(使用static定义的内部接口就相当于外部接口)

接口在开发中有三大核心应用环境:

  • 定义操作标准
  • 表示能力
  • 在分布式开发中暴露远程服务方法(很重要学完web开发后必须熟练运用)

三:工厂设计模式(重点):

传统开发:子类为接口进行对象的实例化处理

主方法是一个客户端,对于主方法的修改不应该影响客户端(主方法尽量不使用new关键字)此时的new是最大的耦合元凶

要想解开耦合需要用到factory设计来描述

定义一个类(类名factory),里面有一个static的方法(该类的实例化没有意义,用static就行)

工厂设计模式的static方法返回类型是你所需要的

(如果想取得接口的实例化对象,使用工厂设计模式)

四:代理设计模式

定义:两个子类共同实现一个子类,其中一个子类 负责真实的业务实现  另外的子类负责真实业务主题的操作 

代理实现子类---->调用真实实现子类

创建代理对象的时候必须要设置要代理的真实主题子类

代理的本质是所有的操作都有遇之相辅相成的代理类

五:抽象类与接口的区别

抽象类和接口都属于常用的类结构设计,优先选择在接口

抽象类也有优点 他可以定义普通方法  

区别点:

抽象类使用abstract声明,extends继承抽象类或者(多)接口 。 内有普通、抽象方法,全局常量 , 全局变量 , 属性 , 构造方法 。设置权限是各种权限。一个抽象类可以实现若干个接口 ,一个子类可以继承一个抽象类 。

接口使用interface声明 , extends继承(多)接口 , implements实现接口 。内有抽象方法 全局常量 。 只有public权限 。 一个接口不能继承抽象来但是可以使用extends 来实现继承多个多接口 , 一个子类可以实现多个接口

抽象类的设计比接口复杂

除了单继承的局限之外,接口和抽象类都是类似的

六:匿名内部类

匿名内部类应该是在接口或者抽象类形式上完成 , 普通类也可以实现匿名内部类但是不推荐,没有实际意义

接口不能实例化,但是通过匿名内部类可以创建一个匿名内部类来实现接口子类的实例化对象进行操作

记录时间:(2017年04月010日 11:48  接口不是类,却和类的用法很相近)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值