首页 > 其他分享 >抽象类与接口的区别

抽象类与接口的区别

时间:2023-04-10 12:44:40浏览次数:44  
标签:区别 继承 绑定 接口 抽象 抽象类 父类

接口和抽象类都是继承树的上层,他们的共同点如下: 1) 都是上层的抽象层。 2) 都不能被实例化 3) 都能包含抽象的方法,这些抽象的方法用于描述类具备的功能,但是不比提供具体的实现。 他们的区别如下: 1) 在抽象类中可以写非抽象的方法,从而避免在子类中重复书写他们,这样可以提高代码的复用性,这是抽象类的优势;接口中只能有抽象的方法。 2) 一个类只能继承一个直接父类,这个父类可以是具体的类也可是抽象类;但是一个类可以实现多个接口。Java语言中类的继承是单继承原因是:当子类重写父类方法的时候,或者隐藏父类的成员变量以及静态方法的时候,JVM使用不同的绑定规则。如果一个类有多个直接的父类,那么会使绑定规则变得更复杂。为了简化软件的体系结构和绑定机制,java语言禁止多继承。接口可以多继承,是因为接口中只有抽象方法,没有静态方法和非常量的属性,只有接口的实现类才会重写接口中方法。因此一个类有多个接口也不会增加JVM的绑定机制和复杂度。对于已经存在的继承树,可以方便的从类中抽象出新的接口,但是从类中抽象出新的抽象类就不那么容易了,因此接口更有利于软件系统的维护和重构。

标签:区别,继承,绑定,接口,抽象,抽象类,父类
From: https://www.cnblogs.com/robots2/p/17302566.html

相关文章

  • 软件测试|什么是压力测试?什么是负载测试?这两个区别是什么?
    前言之前给一个客户做项目时,由于自己对性能测试了解并不深,搞不懂压力测试和负载测试的区别,导致后面还是由负责性能测试的同事来处理,他跟我说了很多关于压力测试和负载测试的区别,现在我总结如下。压力测试压力测试的目的是评估系统的稳定性,确定系统在面临极端情况下的表现,例如:系统承......
  • cached地址和uncached地址的区别
    cached地址和uncached地址的区别是对cached地址的访问是委托给CPU进行的,也就是说你的操作到底是提交给真正的外设或内存,还是转到CPU缓存,是由CPU决定的。CPU有一套缓存策略来决定什么时候从缓存中读取数据,什么时候同步缓存。对unchached地址的访问是告诉CPU忽略缓存,访问操作直接......
  • Linux|windows——什么是接口与API接口
    今天有个朋友问我什么接口?你们平时都说在写接口,写的是什么鬼啊?我一开始就想,咦小陈同学怎么突然了解编程接口了,不过听到他后一个提问我知道原来他想的是API接口,不过被我主观意识习惯想成了编程定义上的接口。所以就突发其想,想写篇东西说明一下编程定义的接口,与API接口含义。为了区......
  • 【转】五分钟给你的 gRPC服务 加上 HTTP 接口
     原文:https://www.cnblogs.com/kevinwan/p/16492868.html-------------------------------gRPC服务要加HTTP接口?go-zero给大家带来极简的RESTful和gRPC服务开发体验的同时,社区又给我们提出了新的期望:我想只写一次代码既要gRPC接口也要HTTP接口既要。。。也......
  • Blender动画节点插件用户指南-接口
    推荐:将 NSDT场景编辑器 加入你的3D开发工具链。接口大部分界面位于节点编辑器中,而其余部分该界面存在于其他区域,例如3D视口。动画节点有自己的节点编辑器,您可以通过以下方式选择单击“涂料表”图标在工具栏中。一个新的可以通过单击“新建”按钮来添加节点树。节点......
  • 第136篇:Three.js基础入门动画API:setInterval 与 requestAnimationFrame的区别
    好家伙,书接上文 functionanimate(){//请求-动画-框架requestAnimationFrame(animate);//改变正方体在场景中的位置,让正方体动起来cube.rotation.x+=0.01;cube.rotation.y+=0.01;renderer.render(......
  • Rust语言 , string(&str) 和 String 区别
    在Rust中,string表示字符串切片类型(&str),可以用于引用字符串数据。而String则是字符串类型,是一种可变的字符串,可以创建、修改和销毁。具体来说,string是Rust的核心语言类型之一,它是一个不可变的字符串切片类型,通常用于引用已有的字符串数据。由于字符串切片是不可变的,因此不......
  • #yyds干货盘点#Linux中root与sudo的用法与区别(学习笔记)
    Linux下面有两个概念可能大家接触的比较多,一个是sudo命令,还有一个是root账户。Sudo 命令可以以最高权限执行命令,而root账户下所有命令都有最高权限,也就是相当于所有命令都默认加了sudo。那么 sudo和root的区别到底是什么呢,为什么我们建议使用sudo而不是直接使用roo......
  • 接口测试用例设计
    一、接口测试的测试点功能测试:1、单接口测试:一个单独的业务,就对应一个独立的接口。如:登录业务,对应登录接口2、业务场景测试:多个接口被连续调用(模拟用户的实际使用场景)性能测试:1、响应时长:从发送请求到接收到服务器回发响应经历的时间。......
  • API 接口设计
    1、场景描述比如说我们要做一款APP,需要通过api接口给app提供数据。假设我们是做商城,比如我们卖书的。我们可以想象下这个APP大概有哪些内容:1)首页:banner区域(可以是一些热门书籍的图片做推广)、本周热卖书籍区域、本月好评书籍区域、活动打折的书籍区域。。。2)排......