接口和抽象类有什么区别
接口和抽象类有什么区别
你选择使用接口和抽象类的依据是什么?
接口和抽象类的概念不一样。接口是对动作的抽象,抽象类是对根源的抽象。
抽象类表示的是,这个对象是什么。接口表示的是,这个对象能做什么。比如,男人,女人,这两个类(如果是类的话……),他们的抽象类是人。说明,他们都是人。
人可以吃东西,狗也可以吃东西,你可以把“吃东西”定义成一个接口,然后让这些类去实现它.
所以,在高级语言上,一个类只能继承一个类(抽象类)(正如人不可能同时是生物和非生物),但是可以实现多个接口(吃饭接口、走路接口)。
第一点. 接口是抽象类的变体,接口中所有的方法都是抽象的。而抽象类是声明方法的存在而不去实现它的类。
第二点. 接口可以多继承,抽象类不行
第三点. 接口定义方法,不能实现,而抽象类可以实现部分方法。
第四点. 接口中基本数据类型为static 而抽类象不是的。
当你关注一个事物的本质的时候,用抽象类;当你关注一个操作的时候,用接口。
抽象类的功能要远超过接口,但是,定义抽象类的代价高。因为高级语言来说(从实际设计上来说也是)每个类只能继承一个类。在这个类中,你必须继承或编写出其所有子类的
所有共性。虽然接口在功能上会弱化许多,但是它只是针对一个动作的描述。而且你可以在一个类中同时实现多个接口。在设计阶段会降低难度的。
接口和抽象类有什么区别相关推荐
- 接口和抽象类有什么区别?
面试题汇总 接口和抽象类有什么区别? 普通类可以实例化,接口都不能被实例化(它没有构造方法),抽象类如果要实例化,抽象类必须指向实现所有抽象方法的子类对象(抽象类可以直接实例化,直接重写自己的抽象方法 ...
- 我应该如何解释接口和抽象类之间的区别?
本文翻译自:How should I have explained the difference between an Interface and an Abstract class? In one ...
- python接口和抽象类的区别_接口和抽象类有什么区别?
最近团队在招人:阿里新零售事业群CBU技术部招Java高级&专家,团队主要负责B2B工业品牌业务,坐标杭州滨江,有兴趣的小伙伴私戳我. **************************** ...
- Java接口和抽象类有哪些区别?
相同: 1.不能够被实例化 2.可以将抽象类和接口类作为引用类型 3.一个类如果继承了某个抽象类或者实现了某个接口都需要对其中的抽象方法全部实现,否则该类然需要被声明为抽象类. 不同: 抽象类: 1. ...
- java接口和抽象类区别是什么_Java接口和抽象类有什么区别
接口(interface)和抽象类(abstract class)是支持抽象类定义的两种机制. 接口是公开的,不能有私有的方法或变量,接口中的所有方法都没有方法体,通过关键字interface实现. ...
- (读书随笔)接口和抽象类的一些区别总结
自己写的笔记 最近看"图灵"出版的一本<Java设计模式>的书,小感慨了一下,还是外国人写的好,对接口和抽象类进行一些总结 1.一个类可以实现多个接口,但是只能扩展一个 ...
- 接口和抽象类的使用区别?
kotlin 理解: 接口为事物的能力,可以不具备 抽象类是事物的本质 太监案例: /** * Human 抽象类 */ abstract class Human{//吃饭abstract fun e ...
- 接口与抽象类的区别 详细总结
------------------------- 在这里我总结了五点区别 ----------------------- 区别一: 抽象类中可以 ...
- 【Java基础】接口和抽象类有什么共同点和区别?
共同点 : 都不能被实例化. 都可以包含抽象方法. 都可以有默认实现的方法(Java 8 可以用 default 关键字在接口中定义默认方法). 不同点 接口的设计目的,是对类的行为进行约束(更准确的 ...
最新文章
- windows下配置redis集群,启动节点报错:createing server TCP listening socket *:7000:listen:Unknown error...
- React入门系列 - 5. 表单与变量的关联
- gitlab 构建tag_GitLab常用命令 分支 Tag 配置 操作
- 最优化课堂笔记03:整数规划
- C语言及程序设计提高例程-10 调试技术:进入函数内部去
- NeurIPS 2021 | 图像损坏场景下行人重识别新基准
- java 建立一个graphics对象_java – 我应该显式处理Graphics对象吗?
- 20191021:(leetcode习题)乘积小于K的子数组
- tensorflow画损失函数的代码_使用TensorFlow编写您的第一个神经网络
- 软件静态测试qac,Helix QAC — 软件静态测试工具
- Leetcode Problem108
- 数据库定时备份linux篇
- 嵌入式分享合集126
- 中学计算机社团活动计划,社团活动方案
- NoteBook / 期货及衍生品基础(6)
- H5 -- 自定义微信分享第三方页面链接的标题和小缩略图
- MS11-030-DNS 解析漏洞复现
- [ERROR] Couldn‘t set the case sensitive attribute of the directory “\\?\C:\WSL\“.Reason: Indicates
- 华为的冬天 (zz.is2120)
- 二、Mingw下载安装