首页 > 其他分享 >抽象类和接口有什么区别

抽象类和接口有什么区别

时间:2024-04-21 14:23:12浏览次数:25  
标签:定义 区别 控制符 接口 关键字 抽象类 方法

接口和抽象类都是用来定义对象的公共行为的,两者本身不能实例化,但二者有以下7点不同:
1.定义关键字不同:接口使用关键字 interface 来定义,抽象类使用关键字 abstract 来定义。
2.继承或实现的关键字不同:接口使用 implements 关键字定义其具体实现,抽象类使用 extends 关键字实现继承。
3.类型扩展不同:抽象类是单继承,而接口是多继承
4.属性访问控制符不同:接口中的属性默认是 public static final 修饰的,抽象类中的属性访问控制符无限制,可为任意控制符
5.方法控制符不同:接口中方法的默认控制符是 public,并且不能定义为其他控制符,抽象类中的方法控制符无限制,其中抽象方法不能使用 private 修饰
6.方法实现不同:接口中普通方法不能有具体的方法实现,在JDK8之后 static 和 default 方法必须有方法实现;抽象类中普通方法可以有方法实现,抽象方法不能有方法实现
7.静态代码块使用不同:接口中不能使用静态代码块,抽象类中可以使用静态代码块

标签:定义,区别,控制符,接口,关键字,抽象类,方法
From: https://www.cnblogs.com/yumeixiaosheng/p/18148903

相关文章

  • 泛型模板化设计使用-订单搜索接口
    泛型模板化设计使用-订单搜索接口1.定义订单搜索接口packagecom.example.core.mydemo.java.templateQuery;//暂不使用该接口//publicinterfaceSearchService<TextendsBaseRequest,FextendsBaseResponse>{publicinterfaceSearchService<T,F>{/***订单......
  • 在Linux中,发行版和内核有什么区别?
    在Linux世界中,内核版本和发行版之间的区别是理解Linux操作系统生态体系的关键点。以下是两者之间详尽的区别:1.Linux内核:内核是Linux操作系统的核心组件,它是操作系统中最基础的部分,负责管理和调度计算机硬件资源,如处理器、内存、硬盘驱动器和其他外设。它的主要职责包括:硬件抽......
  • 在Linux中,开源软件和自由软件的区别?
    在Linux和更广泛的软件领域中,开源软件(OpenSourceSoftware)和自由软件(FreeSoftware)是两个经常被提及且容易混淆的概念。尽管它们共享一些相似之处,但它们在理念和哲学上存在一些关键的区别。1.开源软件开源软件强调的是软件的源代码对用户可见,用户可以查看、修改和分发软件的源......
  • Java设计模式-责任链模式,应用接口多个参数验证,订单多个费用的计算
    Java设计模式-责任链模式,应用接口多个参数验证,订单多个费用的计算1.定义请求和返回对象的上下文对象packagecom.example.core.mydemo.java.filter;importjava.time.LocalDateTime;publicclassOrderReqContext{/***租客会员号*/StringmemNo;......
  • 接口加密传输设计及AES加解密代码DEMO
    接口加密传输设计及AES加解密代码DEMO接口加密的方案设计:可以将请求的json字符串aes加密,通过params字段传输,接口服务端接收到参数,先解密,然后转换成对象。继续业务逻辑的处理。(另外一种方案是:针对敏感字段aes加密,服务接收端对敏感字段来解密处理)RequestVo对象:privateS......
  • 菜品分类模块删除接口+今天的图片不回显问题没有解决,明天再说。这篇随便写写吧,呕。+修
    点击删除按钮,删除菜品,也可以在左侧进行批量删除,故制定批量删除接口。删除规则如下 其中被套餐关联的菜品不能删除,因为删除这些菜品直接影响到套餐删除菜品后,关联的口味也要删除,所以这个删除蛮复杂的,并不是那种单表直接删的简单操作  请求参数和返回数据: 涉及到的表有......
  • 说说常见的排序算法有哪些?区别?
    一、是什么排序是程序开发中非常常见的操作,对一组任意的数据元素经过排序操作后,就可以把他们变成一组一定规则排序的有序序列排序算法属于算法中的一种,而且是覆盖范围极小的一种,彻底掌握排序算法对程序开发是有很大的帮助的对与排序算法的好坏衡量,主要是从时间复杂度、空间复......
  • 前端开发中 对象 类 方法三者区别
    在前端开发中,对象、类和方法都是面向对象编程(OOP)的重要概念。它们各自有着不同的定义和作用,下面将详细解释这三者之间的区别:对象(Object):对象是现实世界或抽象概念中事物的表示。在编程中,对象是一个具体存在的实体,具有属性和方法。属性是对象的数据特征,而方法是对象能够执行的操作......
  • js substr 与 substring 有什么区别吗
    在JavaScript中,substr和substring是用于提取字符串的两个方法,它们的功能类似,但有一些区别:1.substr(start,length)方法:参数:start:必需。要提取的子字符串的起始位置。如果为负数,表示从字符串末尾开始计数。length:可选。要提取的字符数。如果省略或为负数,则提取到字符......
  • java中的接口
    java中的接口目录java中的接口特征接口回调接口和抽象类的异同总结特征接口使用interface关键字接口中的所有方法默认都是publicabstract修饰接口中所有的成员变量都是publicstaticfinal修饰接口没有构造方法,构造方法用于创建对象(接口没办法new对象),但是接口使用......