四月二十一号Java知识基础
1.接口本身具有数据成员、抽象方法、默认方法、和静态方法,但它与抽象类不同
1)接口的数据成员都是静态的且必须初始化,即数据成员必须是静态常量
2)接口中除咯声明抽象方法外,还可以定义静态方法 和默认方法
2.接口定义格式:
[public] interface 接口名称 [extends 父接口列表]
{[public][static] 数据类型 常量名 = 常量
[public] [abstract] 返回值的数据类型 方法名(参数表)
[public] static 返回值的数据类型 方法名(参数表)
{
方法体
}
[public] default 返回值的数据类型 方法名(参数表)
{
方法体}}
3.注意:1)接口中的“抽象方法”只需要声明,不用定义其处理数据的方法体
2)数据成员必须是静态的且是赋初值的,即数据成员必须是静态常量
3)接口中的成员都是公共的,在定义接口时,若省略了public修饰符,在实现抽象方法时,则不能省略该修饰符
4.既然接口中有抽象方法,而抽象方法只需要声明而不用来定义方法体,所以接口与抽象类不能用new运算符创建对象
5.相反的,必须利用接口的特性创建一个新的类,然后再用它类创建对象
利用接口创建新类的过程称为接口的实现
6.接口实现的语言格式:
class 类名称 implements 接口名表
{
}
7.一个类实现一个接口时,注意问题:
1)如果实现某接口的类不是abstract的抽象类,则在类的定一部分必须指定接口的所有抽象方法,
即非抽象类中不能有抽象方法
2)一个类在实现某接口的抽象方法时,必须使用完全相同的方法头,否则只是在定义一个新方法,
而不是实现已有的抽象方法
3)接口中抽象方法的访问控制修饰符都已被指定为public,所以类在实现方法时,必须显示地使用
public修饰符,否则被系统警告为缩小接口中定义的方法的访问控制范围
4)与类一样,每个接口都被编译成独立的扩展名为.class的字节码文件
可以声明接口类型的变量或数组,并用它来访问实现该接口的类的对象
8.与类相似,接口也有继承性。定义一个接口时可通过extends关键字声明该新街口是某个已存在的
接口的子接口,它将继承父接口的常量,抽象方法和默认方法。
与类继承不同的是,一个接口可以有一个以上的父接口,它们之间用逗号分隔,形成父接口列表
新接口将继承所有父接口中的常量、抽象方法、默认方法,但不能继承父接口中的静态方法,也不能被
实现类继承
总结:今天天接触了接口,感觉比之前的复杂,是前面的综合,涉及到静态,构造方法,抽象方法以及继承
接口中的数据成员必须是静态且初始化,接口中除咯声明抽象方法外,还可以定义静态方法和默认方法
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
· 零经验选手,Compose 一天开发一款小游戏!