接口
接口(interface)
接口用来描述类应该做什么,而不指定他们具体应该如何做。就是说,接口给出一些没有实现的方法,封装到一起,某个类要实现它的时候,再根据具体情况将这些方法重写。可以理解为,接口是多个类的共同行为规范,是更加特殊的“抽象类”。(但与类存在着许多不同之处)
定义接口的关键字:interface
几点注意事项:
(1)接口不能被实例化,即不能用new来实例化一个接口。
(2)一个类可以实现多个接口。
(3)接口中所有的方法都自动是 public 方法, 因此声明方法时不必提供关键字public。接口中的抽象方法,可以不用 abstract 修饰。例如:void run( ); ⇔ public void run( ); ⇔ public abstract void run( ); 三者是等价的。接口中的普通方法,需要用default声明;静态方法则用static。普通方法和静态方法必须有方法体,即:花括号。
(注:在JDK7.0及之前的版本,接口里所有的方法都不允许有方法体,而在JDK8.0及之后的版本,接口中的方法可以有方法体。当然,抽象方法还是不能存在方法体的。)
(4)一个普通类实现接口,就必须实现该接口中所有的抽象方法,普通方法和静态方法可以不用实现。如果是抽象类实现接口,可以不用实现接口里的任何方法。
(5)接口中的字段(属性)只能是public static final,即:静态公开常量。例如:int age = 18; 等价于 public static final int age = 18;
接口中的属性的访问格式: 接口名.属性名
(6)接口之间是可以继承的,但是接口与类之间不可以。即:接口不能继承类,但是可以继承接口。继承还是使用extends关键字。
(7)接口的修饰符只能是public 和 默认。(这一点和类一样)
接口的多态性:
(1)多态参数:接口类型可以做为方法的形参。调用方法时,只要是实现了该接口的类的对象实例,都可以当作实参传入。
(2)实现了接口的类,该类可以赋给这个接口声明的引用。(类似向上转型)
(3)多态数组:接口类型可以定义数组,这样的数组可以存放实现了该接口的所有的类的对象。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用