接口interface
接口
定义:接口是一种特殊的抽象类,它不能包含普通方法。
语法格式:
[修饰符]interface 接口名 [extends 父接口]{
[public][static][final] 常量类型 常量名 = 常量值;
[public][abstract] 方法返回值类型 方法名([参数列表]);
[public] default 方法返回值类型 方法名([参数列表]){
默认方法体
}
[public] static 方法返回值类型 方法名([参数列表]){
类方法的方法体
}
}
与定义类不同的是,在定义接口时,不再使用class关键字,而是使用 interface 关键字来声明接口定义的基本
public interface InterfaceDemo01 { //静态常量 可以省略static和final关键字 public static final int AGE = 18; //抽象方法,可以省略abstract关键字 public void eat(); //静态方法 static void sleep(){ System.out.println("sleep。。。"); } //default方法 default void play(){ System.out.println("play。。。"); } }
常量:默认接口中所有的成员的变显都是省略public static final这几个关键字的,一般接口的成员变量都是大写的
抽象方法:默认接口中的所有成员方法都是省略public abstract的
接口不能被实例化,需要通过实现接口的方法去实现接口中的方法,
在接口中存在抽象方法,也就是说当前类也是一个抽象类,抽象类不能被实例化,
那么就能通过接口的实现类去实现。要实现接口我们要通过implements去实现接口。
class Person implements InterfaceDemo01{ @Override public void eat() { System.out.println("eat方法"); } }
public static void main(String[] args) { InterfaceDemo01 person = new Person(); person.eat(); person.play(); InterfaceDemo01.sleep(); }
运行结果:
接口实现类的特点:
1.如果一个类实现了接口,那么该类就必须实现接口中定义的所有的抽象方法
2.如果一个接口不想实现接口的方法,那么子类必须定义为一个接口或者抽象类
interface Student extends InterfaceDemo01{ } abstract class User implements InterfaceDemo01{ }
实现接口可以多实现
interface InterfaceDemo01 { } interface Student{ } class User implements InterfaceDemo01,Student{ }
接口之间的关系是继承关系,接口之间同样也可以实现多继承
interface Student{
}
interface Doc{
}
interface Teacher extends Student,Doc{
}
类和接口的关系
类和类:单继承。不可以实现
类和接口:单继承,多实现
接口和接口:多继承,不可以多实现
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY