interface,面向对象编程的体现之一
假设现在有一台笔记本电脑,一个笔记本电源,一个鼠标,一个外接键盘,笔记本电源是用A的形式连接电脑,鼠标是以B的形式连接电脑,外接键盘是以C的形式连接电脑,如果这个台电脑一次只能连接其中一个,那么连电源盘时要用A槽,连接鼠标时要用B槽,连接键盘时要用C槽,这需要三个不同的槽口,倘若以后新增了其他的要连接的对象岂不是要一个对象增加一个槽口?这是非常麻烦,也非常没有可行性的事情,所以这让人不禁想到,要是能让这些对象都能使用同样的槽去连接电脑不就能解决了? 接口(interface)应运而生,比如usb接口,就可以让你不管是电源,键盘还是鼠标,都可以用同一个槽连接电脑。
同样,面向对象编程的java也有接口
接口,顾名思义,就是对象与对象之间的连接通道或类与对象之间的连接通道,它规定了一种统一的标准(属性和方法),并让每个需要用到接口来连接另一方的对象都要遵守这种标准,以达到"一槽适用多对象"的情况(有点类似于JVM和class文件),并且可以利用这个统一标准来实行对有关对象的规范化管理。
所以通过以上,可以感受到,面向对象编程通俗来说就是用程序模拟现实世界。
接口语法
interface 接口名{
//属性(默认是public static final,所以必须显式初始化,且不需要自己写这些修饰符)
//方法(jdk7及以前,只可以是抽象方法,即没有方法体,而在jdk8以及jdk8以后,可以是抽象,默认,静态方法,也就是可以有具体的方法实现)
}
class 类名 implement 接口{
//属性
//方法
//重写接口的所有抽象方法
}
接口细节
①接口不能被实例化
②接口中所有方法都是public,且不需要public来修饰,同时接口中的抽象方法可以不用abstract来修饰,也就是默认是public abstract
③抽象类实现接口时,可以不重写接口的抽象方法
④一个类可以实现多个接口
⑤接口可以嵌套
⑥接口属性的访问形式:接口名.属性名
⑦接口不能继承类,但可以继承别的接口,有多态,能实现多态参数,多态数组,可以重写父类的方法(注意:可以不重写父接口的抽象方法)
⑧接口不能与类重名,修饰符也只能是public和默认
接口与继承的区别
①原则不同
继承:is - a关系
接口:like - a关系
②解决问题不同
继承:提高代码的复用性和可维护性
接口:设计各种规范,让与接口不应有继承关系的类能实现这些方法
③接口在一定程度上实现代码解耦,即接口规范性 + 动态绑定
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现