首页 > 其他分享 >抽象类、实现类、接口的区别

抽象类、实现类、接口的区别

时间:2024-08-12 20:07:15浏览次数:4  
标签:区别 子类 接口 抽象 修饰 抽象类 方法

抽象类、实现类、接口的区别

接口和抽象类的区别:

1.抽象类中的方法可以有方法体,也就是可以实现具体的方法,但是接口中的方法必须是抽象的,只能声明,没有方法体

2.抽象类的成员变量修饰随便(public,private,protected等等),接口的成员变量必须是public,static,final修饰(默认)(可以用来做定义常量的类)

3.一个类只能继承一个抽象类,但是一个类可以实现多个接口

4.接口的所有方法必须被它的实现类全部实现(没有例外),接口的实现类如果不能实现接口的所有方法,那必须声明为抽象类

5.类只能单继承,但是接口可以多继承

6.接口是隐式抽象的, 所以在声明接口的时候不用加abstract关键字,接口中的方法也是隐式抽象的,不用加abstract关键词

7.可以用接口声明一个变量,为空指针或者绑定到一个实现该接口的类的对象上

8.抽象类不能实例化对象,只有抽象类的非抽象子类可以实例化对象

9.抽象类中不一定包含抽象方法,但是有抽象方法的类必须是抽象类

10.抽象类中的抽象方法只是声明,不包含方法体,

11.构造方法,类方法(用static修饰的方法)不能声明为抽象方法

12.抽象类的子类必须给出抽象类的抽象方法的具体实现,否则该子类必须声明为抽象类,抽象类的所有方法需要被子类全部实现(有一种情况例外,除非子类也是抽象类,其实就是把实现的责任又传递了下去);

13.抽象类的关键字是abstract修饰,接口的关键字是interface修饰。

14.抽象类有构造方法,接口没有构造方法。(但两者均不能被实例化,用我自己的话来概括就是,两者都是抽象派,没有具体的实际行为,所以不允许它们实例化!)

15.抽象类的方法可以是普通方法,也可以是抽象方法。接口的方法必须是public,abstract修饰(默认)(1.8以后方法可以加static关键字,但必须有方法体)

普通类和抽象类有哪些区别?

  • 抽象类不能被实例化
  • 抽象类可以有抽象方法,抽象方法只需申明,无需实现
  • 含有抽象方法的类必须申明为抽象类
  • 抽象的子类必须实现抽象类中所有抽象方法,否则这个子类也是抽象类
  • 抽象方法不能被声明为静态
  • 抽象方法不能用private修饰
  • 抽象方法不能用final修饰

标签:区别,子类,接口,抽象,修饰,抽象类,方法
From: https://www.cnblogs.com/jmy3/p/18355642

相关文章

  • 抽象类
    抽象类的概念什么是抽象抽象类(AbstractClass):在面向对象编程中,抽象类是一个不能被实例化的类,它通常包含抽象方法。抽象方法是没有实现的方法,它只声明了方法的签名,具体的实现留给子类去完成。这里有一个规则:既然父类里面的方法是抽象的,那么对于整个类来说,它就有一个没有实现......
  • 接口
    接口的概念什么是接口?接口就是一个规范,类似于硬件上面的接口,在电脑主板上的PCI插槽的规范就类似于Java接口,只要是遵循PCI接口的卡,不过是什么牌子的都可以插入到PCI插槽中。所以接口就是一个规范。接口就是某个事物对外提供的一些功能的说明。我们还可以利用接口实现多态功能,同时......
  • Neuralink的进展与马斯克的技术愿景——从脑机接口到AI融合的未来
    引言Neuralink,这个由埃隆·马斯克(ElonMusk)创立的公司,一直是科技界的焦点。自从其发布以来,Neuralink的脑机接口技术便吸引了全球的目光。最近,马斯克再次向公众展示了Neuralink的突破性进展,成功为第二位患者植入了脑机接口。这项手术标志着Neuralink在增强人类与机器互动能......
  • 接口安全处理
    如何防止api接口被恶意调用或攻击无论网站,还是App目前基本都是基于api接口模式的开发,那么api的安全就尤为重要了。目前攻击最常见的就是“短信轰炸机”,由于短信接口验证是App,网站检验用户手机号最真实的途径,使用短信验证码在提供便利的同时,也成了呗恶意攻击的对象,那么如何才能防......
  • Redis与接口自动化
    1.Redis与接口自动化测试框架的集成使用Python操作Redis需要导入相应的客户端库,例如:pip install redisimportredis2.初始化Redis连接在接口自动化测试框架的初始化过程中,可以添加连接Redis的代码,确保测试过程中能够与Redis建立连接classTestFramework......
  • @Autowired 和@Resource的区别
     参考文章终于有人把@Autowired和@Resource的区别说清楚了!_autowired和resource区别-CSDN博客https://blog.csdn.net/LJJ555a/article/details/132074655 重点总结  @Autowired和@Resource都是Spring/SpringBoot项目中,用来进行依赖注入的注解。它们都提供了将......
  • JAVA 两个类同时实现同一个接口的方法
    在Java中,两个类同时实现同一个接口是非常常见的。接口定义了一组方法,实现接口的类必须提供这些方法的具体实现。以下将展示如何实现这一要求,并提供具体的代码示例。示例接口首先,定义一个简单的接口,比如一个表示动物的接口,它有一个方法makeSound:publicinterfaceAnimal{......
  • RestController和Controller的区别和异同
     参考文章【SpringBoot】带你一文彻底搞懂RestController和Controller的关系与区别-CSDN博客https://blog.csdn.net/miles067/article/details/132567377 --------------------------------------------------------------------------------------------------------------......
  • ROS 2 自定义接口(消息、服务和动作)
    ROS2自定义接口(消息、服务和动作)在ROS2中,自定义接口是构建复杂机器人系统的核心。自定义接口使开发者能够定义特定于应用的数据结构和通信模式,包括消息(Message)、服务(Service)和动作(Action)。本文将介绍如何在ROS2中创建和使用这些自定义接口。1.自定义消息(Message)......
  • 【面试】解释Attention和Self-Attention的区别
    面试模拟场景面试官:你能解释一下Attention和Self-Attention的区别吗?参考回答示例1.Attention机制基本概念:Attention是一种能够动态聚焦输入序列中不同部分的机制,允许模型根据需要选择性地关注输入数据的某些部分。这种机制最早被引入到机器翻译任务中,用于在翻译时......