当前位置: 首页 > news >正文

面向对象-接口

一、接口的定义以及使用

1、接口:是一个引用数据类型,是一种标准和规范

2、关键字

a、interface 接口

public interface 接口名{}

b、implements 实现

实现类 implements 接口名{}

3、使用流程

(1)定义接口

public interface 接口名{}

(2)实现

public class 实现类名 implements 接口名{}

(3)使用

a、实现类实现接口

b、重写接口中的抽象方法

c、创建实现类对象(接口不能直接new对象)

d、调用重写的方法

二、接口中的成员

2.1、抽象方法

1、定义格式

public abstract 返回值类型 方法名(形参);

2、注意

不写 public abstract默认也有

3、使用:

a、定义实现类,实现接口

b、重写抽象方法

c、创建实现类对象,调用重写的方法

//接口 public interface USB { public abstract void open(); String close(); } //实现类 public class Mouse implements USB{ @Override public void open() { System.out.println("打开鼠标"); } @Override public String close() { return "关闭鼠标"; } } //测试类 public class Test { public static void main(String[] args) { Mouse mouse = new Mouse(); mouse.open(); String result = mouse.close(); System.out.println(result); } }

2.2、默认方法

1、格式

public default 返回值类型 方法名(形参){

方法体

return 结果

}

2、使用

a、定义实现类,实现接口

b、默认方法可以重写,也可以不重写

c、创建实现类对象,调用默认方法

2.3、静态方法

1、 定义格式

public static 返回值类型 方法名(参数){

方法体

return 结果

}

2、使用:接口名直接调用

2.4、成员变量

1、格式

public static final 数据类型 变量名 = 值

2、相关知识点:final

final代表最终的,被它修饰的变量,不能二次赋值,可以视为常量

3、特点:不写public static final 默认也有

4、使用:接口名直接调用

5、注意

a、被static final修饰的成员变量需要手动赋值

b、习惯上将被tatic final修饰的成员变量名大写

//接口的定义 public interface USB { static final int NUM1 = 100; int NUM2 = 200; // int NUM3; 需要初始化值 public default void methodDef() { System.out.println("我是默认方法"); } public static void methodSta() { System.out.println("我是静态方法"); } } //实现类的定义 public class Mouse implements USB{ @Override public void methodDef(){ System.out.println("我是重写默认方法"); } } //测试类的定义 public class Test { public static void main(String[] args) { Mouse mouse = new Mouse(); mouse.methodDef(); USB.methodSta(); System.out.println(USB.NUM1); } }

三、接口的特点

1、接口可以多继承 ->一个接口可以继承多个接口

public interface InterfaceA extends InterfaceB,InterfaceC{};

2、接口可以多实现 -> 一个实现类可以实现一个或多个接口

public class InterfaceImpl implements InterfaceA,interfaceB{}

3、一个子类可以继承一个父类的同时,实现一个或多个接口

public class Zi extends Fu implements InterfaceA,InterfaceB{}

4、注意:

a、继承也好,实现接口也罢,只要是父类中或者接口的抽象方法,子类或实现类都要重写。

b、当一个类实现多个接口时,如果接口中的抽象方法有重名并且参数一致,只需要重写一次。

c、当一个类实现多个接口时,如果多个接口中默认方法有重名的,且参数列表一样,必须重写一次默认方法

public interface A { public void method(); //抽象方法没有方法体 } public interface B { public void method(); } public class Impl implements A,B { //只需重写一次即可 @Override public void method() { System.out.println("我是重写之后的方法"); } }

四、接口和抽象类的区别

1、相同点:

a、都位于继承体系的顶端,用于被其它类实现或继承

b、都不能new

c、都包含抽象方法,其子类或者实现类都必须重写这些抽象方法

2、不同点:

a、抽象类:一般作为父类使用,可以有成员变量、构造方法、成员方法、抽象方法等。

b、接口:成员单一。一般抽取接口,抽取的都是方法,视为功能的大集合

c、类不能多继承,但是接口可以

http://www.jsqmd.com/news/1392497/

相关文章:

  • 2026云南电大中专**报名入口!报考流程+专业解析 - 小张zc
  • 2026成都钻石钻戒回收诚信商家一览:无损鉴定当场结算指南 - 资讯快报员
  • 普通人要Codex有什么用?
  • Dism++ 完整上手指南:免费开源系统优化工具,10 分钟跑通清理、更新与备份全流程
  • 从卸载官方软件到彻底掌控:这台ROG笔记本经历了什么?
  • RIP + GRE 配置笔记
  • TLT153 开发实操二:EPC-TLT153 工控虚拟机与串口调试配置
  • 多工具研发链路,如何评估国产化平台的投入产出比?
  • 把照片变成能摸到的立体摆件,这个免费开源的 ImageToSTL 工具怎么用?
  • CRMEB 首届主题设计大赛奖金2万元~
  • Android 定制限制安装功能
  • AI的「寂灭」-龍德明宇
  • 如何用Pixelle-Video开启AI全自动短视频创作:新手一键生成视频的完整指南
  • Python循环关键字break和continue的使用
  • 代码之外09:团队离不开我,晋升名单却没有我
  • 信息发布系统定制速看:2026商业统一信息发布系统开发商推荐 - 选型|行业|价格|案例
  • 2026广东中小建企资质增项测评:6大机构实力对比,批量多资质申报认准专业服务商 - 优质品牌中立测评推荐
  • 2026广州做小程序商城的公司有哪些,广州小程序商城服务商怎么挑
  • WorkBuddy 安装指南(Windows 版):从下载到登录,一篇就够了
  • CS2 直播不想暴露辅助界面?三步配好 OBS 录屏绕过隐藏设置
  • iPhone USB 网络共享失效?这份 Windows 驱动安装与排错完整指南帮你快速搞定
  • 主力资金流向因子怎么挖掘本地化Python全流程实战
  • GetQzonehistory 备份攻略:十分钟把 QQ 空间说说完整归档到本地
  • 破解物理AI技术困局(45):TVA挑战通用表征架构
  • 魔兽争霸3优化工具WarcraftHelper使用教程:解锁帧率、宽屏与地图限制一次搞定
  • 【工程师笔记|新能源整车CAN总线ESD系统防护完整方案,解决30kV静电击穿痛点】
  • 香奈儿存在轻微磨损划痕,小心不良商家恶意压价,奢二网按照行业标准客观估价 - 每日小知识
  • 2026年注塑机供应厂家实力观察:高速薄壁/双色/出口/汽车配件/周转箱注塑机品牌深度解析与选购方向 - 卓企推荐
  • 开源地图API vs 商业地图API:选型全对比
  • 链表(牛客网编程练习)