java 为什么使用接口_java_深入理解Java中的接口,一. 为什么要使用接口 假如有 - phpStudy...

深入理解Java中的接口

一. 为什么要使用接口

假如有一个需求:要求实现防盗门的功能。门有"开"和"关"的功能,锁有"上锁"和"开锁"的功能。

分析:首先防盗门是一个门,门有开门和关门的功能,还有一把锁,锁有开锁和上锁,按照面向对象的编程的思想,我们会将门和锁都作为一个类而单独存在,但是,不能让防盗门继承自门的同时又继承自锁,防盗门不是锁,不符合继承中is a的关系,在java中支持单继承。那么我们如何来解决这一问题,这时就要用到接口。

二. 什么是接口

在软件中接口是一种规范和标准,他们可以约束类的行为,是一些方法特征的集合,但是没有方法的实现,接口其实上也可以看做是一个特殊的抽象类,但是采用和抽象类完全不同的方法来表示,两者的设计理念也是不同的,抽象类有利于代码复用,接口利于代码的扩展和维护。

三. 抽象类和接口的区别:

01抽象类可以提供成员方法的实现细节,而接口中只能存在public abstract 方法;

02.抽象类中的成员变量可以是各种类型的,而接口中的成员变量只能是public static final类型的;

03.接口中不能含有静态代码块以及静态方法,而抽象类可以有静态代码块和静态方法;

04.一个类只能继承一个抽象类,而一个类却可以实现多个接口。

四. 如何定义接口

首先先来看一下语法:

[修饰符] interface 接口名 extends 父接口1,父接口2,...

{

//常量定义

//方法定义

}

在一个类中实现接口语法:

class 类名 父类名 implements 接口1,接口2,.....

{

//类成员

}

五. 定义接口注意点

01、接口的命名规则与类相同,如果修饰符是public ,则该接口在整个项目中可见;如果省略修饰符,则该接口只在当前包中可见。

02、接口中可以定义常量,不能定义变量,如果你在接口中定义属性,那么通过反编译可以看见他会自动用public static final 修饰,接口中的属性都是全局静态常量,接口中的常量必须在定义时指定初始值。

03、接口中所有的方法都是抽象方法,接口中方法都会自动用public abstract 修饰,即接口中只有全局抽象方法。

04、接口不能实例化,接口中不能有构造。

05、接口之间可以通过extends实现继承关系,一个接口可以继承多个接口,但接口不能继承类。

06、接口的实现类必须实现接口的全部方法,否则必须定义为抽象类。

以上这篇深入理解Java中的接口就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持phpstudy。相关阅读:

一次MySQL慢查询导致的故障

Javascript原型链和原型的一个误区

Win10预览版10159有哪些变化 Win10预览版10159变化汇总

Win10 Mobile怎么拦截骚扰电话和垃圾短信?

Windows7绝对不能关闭的服务(切记)

复杂的javascript窗口分帧解析

javascript创建createXmlHttpRequest对象示例代码

实例详解用户输入 i. 检测常用手势

javascript每日必学之运算符

MySQL中导出用户权限设置的脚本分享

javaScript事件机制兼容【详细整理】

可选择和输入的下拉列表框示例

php过滤所有恶意字符(批量过滤post,get敏感数据)

MySQL 5.5主从同步设置笔记分享

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值