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

接口 Day7

什么是接口?

对规则的声明,规定必须做什么,不规定怎么做

例子:

规定必须做什么:我选择声明一个接口!名字叫支付,所有人想要支付功能,必须先实现我这个接口

不规定怎么做:有人实现了我这个支付接口,他可能是,支付宝,微信,银行卡等,每个东西内部实现不一样!

  1. 方法声明:

    • 接口中的方法默认是public abstract的。即使不显式写出这两个修饰符,编译器也会自动加上。
    • 这些方法只有签名(方法名、参数列表、返回类型),没有方法体(没有{ ... }包裹的具体实现)。
    • 例如:
      public interface Animal { void makeSound(); // 抽象方法声明 }
  2. 常量声明:

    • 接口中可以定义常量,这些常量默认是public static final的。
    • 常量必须在声明时初始化。
    • 例如:
      public interface Constants { int MAX_VALUE = 100; // 等同于 public static final int MAX_VALUE = 100; }
  3. 没有构造器:

    • 接口不能被实例化(不能使用new关键字创建接口的对象),因此接口没有构造方法。
  4. 实现:

    • 一个类使用implements关键字来实现一个或多个接口。
    • 实现接口的类必须为接口中声明的所有抽象方法提供具体的实现(方法体),否则该类必须声明为abstract类。
    • 例如:
      public class Dog implements Animal { @Override public void makeSound() { System.out.println("Woof!"); // 提供具体实现 } }
  5. 多继承:

    • Java不支持类的多继承(一个子类继承多个父类),但支持接口的多实现(一个类可以实现多个接口)。
    • 例如:
      public class SmartDevice implements Phone, Camera { // ... 必须实现 Phone 和 Camera 接口中的所有方法 }

6.接口的作用

  1. 定义规范/契约:强制要求实现类具备特定的功能。
  2. 实现多态:允许通过接口类型引用指向不同的实现类对象,调用接口声明的方法。
  3. 解耦:将方法的定义与实现分离,提高代码的灵活性和可维护性。
  4. 替代多继承:通过实现多个接口,类可以获得多种不同的能力
// 定义接口 interface Animal { void makeSound(); // 接口方法(无实现) } // 实现接口 class Dog implements Animal { @Override public void makeSound() { System.out.println("汪汪!"); } } // 另一个实现类 class Cat implements Animal { @Override public void makeSound() { System.out.println("喵喵~"); } } // 主类 public class Main { public static void main(String[] args) { Animal dog = new Dog(); Animal cat = new Cat(); dog.makeSound(); // 输出: 汪汪! cat.makeSound(); // 输出: 喵喵~ } }
http://www.jsqmd.com/news/544778/

相关文章:

  • Python中日期时间字符串的格式化处理全攻略
  • 本地部署开源 PDF 工具箱 Stirling-PDF 并实现外部访问( Windows 版本)
  • 路广新阿胶品牌 - 中媒介
  • 手机检测模型轻量化:实时手机检测-通用TensorRT加速部署教程
  • 如何用模块化Transformer架构实现遥感图像的高效语义分割
  • 【UE5】CPP中使用ControlRig蓝图节点示例
  • 2025-2026年云南旅行社推荐:年轻人户外轻奢体验热门旅行社对比 - 十大品牌推荐
  • 2026年阿克苏地区玻璃钢化粪池厂家口碑盘点,看看哪家更靠谱 - 工业品牌热点
  • WiFi CSI感知技术:无设备感知的颠覆性革命
  • 3分钟掌握微信QQ防撤回:Windows平台实用补丁完全指南
  • 市面上比较好的LED数码管屏制造企业哪家权威
  • OpenClaw内存优化方案:Qwen3.5-9B大模型轻量化加载技巧
  • 2026年防火铝塑板厂家推荐:商业空间室内装修高性价比选择与采购避坑指南 - 十大品牌推荐
  • 2025年12月四级真题第1套PDF共9页
  • 从苹果AirTag到国产车钥匙:拆解UWB芯片厂商格局与选型指南(附功耗实测参考)
  • ScanTailor Advanced:专业扫描文档处理的全方位解决方案
  • Arduino数据记录仪实战:用SPI模式SD卡模块存储传感器数据(避坑指南)
  • 新疆瑞能母线桥架费用多少,管理和售后能保障吗 - 工业品网
  • 【AI】API 调用基础:执行式AI必备网络请求知识
  • OpenClaw版本升级:Qwen3.5-9B兼容性检查与平滑迁移指南
  • Python正则表达式实战:高效提取信息的完整指南
  • 2026年阿里企业邮箱收费标准详解:套餐选择与开通指南 - 品牌2025
  • 【实时更新中】Note -「Intro. to TOC」“我们盛放直到世界倾圮”
  • BiliTools:全能B站资源管理工具,让离线学习与内容备份无忧
  • 2026工业省电空调市场盘点:哪些品牌值得关注?优质的工业省电空调机构分析精选优质厂家 - 品牌推荐师
  • Jable视频下载插件使用指南:三步解决视频保存难题
  • 深入解析Shim在跨版本API兼容中的实战应用
  • 86. 如何在 Prometheus 的 kube-state-metrics 中加入额外的资源标签
  • WinDiskWriter:让Mac用户轻松制作Windows启动盘的专业工具
  • 自助建站平台哪个好 - 码云数智