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

【JAVA面试】关于接口

1.为什么接口中只能声明公共的静态的常量?

        因为接口是标准规范,那么在规范中需要声明一些底线边界值,当实现者在实现这些规范时,不能去随意修改和触碰这些底线,否则就有“危险”

        例如:USB1.0规范中规定最大传输速率是1.5Mbps,最大输出电流是5V/500mA。USB3.0规范中规定最大传输速率是5Gbps(500MB/s),最大输出电流是5V/900mA。

2.接口与抽象类之间的对比

        

区别点抽象类接口
定义可以包含抽象方法的类主要是抽象方法和全局常量的集合
组成构造方法、抽象方法、普通方法、常量、变量常量、抽象方法(8.0默认方法、静态方法)
使用子类继承抽象类子类实现接口
关系抽象类可以实现多个接口接口不能继承抽象类,但允许继承多个接口
常见设计模式模板方法简单工厂、工厂方法、代理模式
对象通过对象的多态性产生实例化对象通过对象的多态性产生实例化对象
局限抽象类有单继承的局限接口没有此局限
实际作为一个模板是作为一个标准或是表示一种能力
选择如果抽象类和接口都可以使用的话,优先使用接口,因为避免单继承的局限如果抽象类和接口都可以使用的话,优先使用接口,因为避免单继承的局限

        在开发中,常看到一个类不是去继承一个已经实现好的类,而是要么继承抽象类,要么实现接口。


http://www.kler.cn/news/333611.html

相关文章:

  • Web和UE5像素流送、通信教程
  • 【Linux第五课-进程概念下】环境变量、程序地址空间
  • KiCad 综合笔记
  • 习题5 循环
  • 集合框架02:Collection使用(1)
  • C语言0基础的前端考研日记:头插法/尾插法创建单链表
  • 【Kubernetes】常见面试题汇总(五十六)
  • 基于微信小程序的旅游拼团系统
  • AlmaLinux 9 安装mysql8.0.38
  • MySQL 数据类型详解
  • Windows环境下使用Docker配置MySQL数据库
  • cnn突破四(生成卷积核与固定核对比)
  • 【STM32开发之寄存器版】(四)-独立看门狗IWDG
  • 深入解析 RISC-V 递归函数的栈使用:以阶乘函数为例
  • RCE_无回显
  • MES系列-MES赋能智能工厂
  • Java之队列
  • Pikachu-url重定向-不安全的url跳转
  • Redis基础三(redis的高级配置)
  • 【rCore OS 开源操作系统】Rust 字符串(可变字符串String与字符串切片str)