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

21. 抽象类和接口的区别

21. 抽象类和接口的区别

语法层面上:

  • 抽象类的关键字是abstract,接口是interface
  • 抽象类里面成员变量可以是任意类型,接口里面只能是static final,必初始化。
  • 抽象类里成员方法可以是abstract或者是实际的实现类,Java8前,接口里方法必须是abstract,8后,默认方法为default 静态方法static
  • 抽象类里可以定义构造器,接口里不能定义构造器,不能实例化。
  • 抽象类里变量和方法的访问修饰符可以说任意的,接口里方法默认是public ,变量默认是 public static final
  • 抽象类只能被一个类继承,接口可以被多个类实现 (单继承多实现)
  • 抽象类支持静态代码块和静态方法,接口中支持静态方法,不支持静态代码块

设计层面是:

  • 抽象类是对一种事物的抽象,也就是对类的抽象。而接口是对行为的抽象。抽象类

包括属性和行为,而接口是对行为进行抽象。

  • 抽象类是进行一种模板的设计,而接口是一种规范的设计

抽象类示例:

abstract class Animal {protected String name;public Animal(String name) {this.name = name;}abstract void makeSound(); // 抽象方法public void sleep() { // 具体方法System.out.println(name + " is sleeping");}
}class Dog extends Animal {public Dog(String name) {super(name);}@Overridevoid makeSound() {System.out.println(name + ": Woof!");}
}

接口示例:

interface Flyable {void fly(); // 抽象方法default void floatOnWater() { // 默认方法(Java 8+)System.out.println("Floating...");}static boolean isAquatic() { // 静态方法(Java 8+)return false;}
}class Bird implements Flyable {@Overridepublic void fly() {System.out.println("Bird is flying");}
}
http://www.lryc.cn/news/620291.html

相关文章:

  • 【单板硬件】器件采购:BOM表
  • 大数据可视化设计 | 智能家居 UI 设计:从落地方法到案例拆解
  • 【从网络基础到实战】理解TCP/IP协议体系的核心要点(包含ARP协议等其他协议介绍)
  • 词向量转化
  • nginx知识点
  • C语言相关简单数据结构:顺序表
  • 使用 Simple Floating Menu 插件轻松实现浮动联系表单
  • Linux学习-UI技术
  • phpstudy搭建pikachu
  • 《探索C++ set与multiset容器:深入有序唯一性集合的实现与应用》
  • java中的各种引用
  • C++算法·递推递归
  • 从感知到执行:人形机器人低延迟视频传输与多模态同步方案解析
  • 飞算AI:企业智能化转型的新引擎——零代码重塑生产力
  • 音频重采样使用RandomOverSampler 还是 SMOTE
  • Python 基础语法(一)
  • Java研学-RabbitMQ(七)
  • 云计算-实战 OpenStack 私有云运维:服务部署、安全加固、性能优化、从服务部署到性能调优(含数据库、内核、组件优化)全流程
  • 《深入解析C++中的Map容器:键值对存储的终极指南》
  • FPGA+护理:跨学科发展的探索(四)
  • Java 大视界 -- 基于 Java 的大数据可视化在能源互联网全景展示与能源调度决策支持中的应用
  • Ubuntu24.04桌面版安装wps
  • 20250813比赛总结
  • Centos 用户管理
  • 在CentOS 7上配置Android USB网络共享方式的方法
  • 「数据获取」《中国海洋生态环境状况公报》(2001-2023年)(获取方式看绑定的资源)
  • 【linux】--U盘挂载
  • 更友好的并发库conc介绍
  • java集合之单列集合
  • 基于离散余弦变换的激活水印(DCT-AW)