JDK1.8之前接口内容
【1】接口声明格式:
[访问修饰符] interface 接口名[extends 父接口1,父接口2...]{
常量定义;
方法定义;
}
【2】代码
1 package com.msb4; 2 3 import jdk.swing.interop.SwingInterOpUtils; 4 5 /** 6 * @Auther:liu 7 * @Date:-14:30:31 8 * @Description:IntelliJ IDEA 9 * @Version:1.0 10 */ 11 /* 12 * 1、类是类,接口是接口,他们是同一层次的概念 13 * 2、接口中没有构造器 14 * 3、接口如何声明:interface 15 * 4、在JDK1.8之前,接口中只有两部分内容: 16 * (1)、常量:固定的修饰符pubilc static final 17 * (2)、抽象方法:固定修饰符:public abstract 18 * 修饰符可以省略不写,IDE会帮你自动补全,但是初学者建议写上,防止遗忘。 19 * */ 20 public interface TestInterface01 { 21 //常量: 22 public static final int NUM=10; 23 //抽象方法: 24 public abstract void a(); 25 public abstract void b(int num); 26 public abstract int c(String name); 27 } 28 interface TestInterface02{ 29 public abstract void d(); 30 public abstract void e(); 31 32 } 33 /* 34 * 5、类和接口关系是什么?实现关系 类实现接口 35 * 6、一旦实现一个接口,那么实现类要重写接口中全部的抽象方法: 36 * 7、如果没有全部重写抽象方法,那么这个类可以变成一个抽象类 37 * 8、java只有单继承,java还有多实现 38 * 一个类继承其他类,只能直接继承一个父类 39 * 但是实现类实现接口的话,可以实现多个接口 40 * 9、先继承 再实现class Student extends Person implements TestInterface01,TestInterface02 41 * */ 42 43 class Student extends Person implements TestInterface01,TestInterface02{ 44 @Override 45 public void a() { 46 System.out.println(1); 47 } 48 49 @Override 50 public void b(int num) { 51 System.out.println(2); 52 } 53 54 @Override 55 public int c(String name) { 56 return 3; 57 } 58 59 @Override 60 public void d() { 61 System.out.println("ddd"); 62 } 63 64 @Override 65 public void e() { 66 System.out.println("eee"); 67 } 68 } 69 70 class Test{ 71 //这是一个main方法:是程序的入口 72 public static void main(String[] args) { 73 //10、接口不能创建对象: 74 //TestInterface02 t = new TestInterface02(); 75 TestInterface01 t=new Student();//接口指向实现类----》多态 76 //11、接口中常量如何访问: 77 System.out.println(TestInterface01.NUM); 78 System.out.println(Student.NUM); 79 System.out.println(t.NUM); 80 Student s=new Student(); 81 System.out.println(s.NUM); 82 } 83 }
【3】接口的作用是什么?
定义规则,跟抽象类不同的地方?他是接口不是类。
接口定义好规则之后,实现类负责实现即可。
【4】、
继承:子类对父类的继承
实现:实现类对接口的实现
手机 是不是 照相机
继承:手机extends照相机 “is ----a”的关系 ,手机是一个照相机
上面的写法不好:
实现:手机 implements 拍照功能 “has--a”的关系,手机具备照相的能力
案例:飞机,小鸟,风筝
定义一个接口:Flyable
【5】多态的应用场合:
(1)父类当做方法的形参,传入具体的子类的对象
(2)父类当做方法的返回值,返回的是具体的子类的对象
(3)接口当做方法的形参,传入具体的实现类的对象
(4)接口当做方法的返回值,返回的是具体的实现类的对象
【6】接口和抽象类的区别:
抽象类是一种对事物的抽象,而接口是一种对行为的抽象; 抽象类是对整个类整体进行抽象,包括属性、行为,但是接口却是对类局部(行为)进行抽象。 抽象类是一种模板式设计,而接口是一种行为规范,是一种辐射式设计。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本