抽象类和实现接口有什么区别?抽象有什么好处?接口有什么好处!

问题描述

抽象有什么好处?接口有什么好处!

解决方案

抽象类和接口的区别:(完全可以百度能找到答案的)1.修饰的关键字不同 抽象类修饰关键字 abstract 接口是 interface2 抽象类除了有抽象方法还可以有普通方法 而接口除了抽象方法 不能有普通方法3.抽象类对于其他类只能单一继承 而接口 一个人类可以实现多个接口 说白了接口就是java中来处理c中的多继承问题而设计的4 接口能继承 抽象类能实现接口 2者各有各的好处 都是能解决一类问题而已!
解决方案二:
看不下去了,十年前的问题,十年前的回答。接口现在已经可以写可实现的方法了,只是比较特殊接口一共两个目的,第一,和抽象类一样的作用,第二,弥补java作为面向对象语言不可传递函数的缺陷。抽象类本质上和非抽象类一样,只是抽象类从设计上能让程序员的代码更严谨。
解决方案三:
抽象类和接口某种程度上是挺像的,你可以理解为全部的抽象类就基本上等于接口了。抽象类一般是用于需要提取共同的行为放在父类,然后有一些行为是不能定的就做为抽象方法留给子类实现,子类继续抽象类以后,就自动有了父类已定义的方法的能力,但是抽象类有一个局限性,那就是不能多重继承。接口是可以理解为完全没有实现的抽象类,它适合定义某些能力,如果实现了这个接口,那就意味着拥有了这个能力,接口有个好处就是,一个类可以实现多个接口,也就是一个类可以有多种能力,接口比抽象类好的地方还有,那就是当一个类继承自抽象类,他无条件,也就是不能拒绝抽象类的所有公共方法,它都无条件的继承下来了,这在有些时候并不是我们想希望的样子。拿线程举个例子,要起一个线程,可以继承自Thread类,也可以实现Runnable接口,然后用Thread启动它,推荐的做法是实现Runnable接口,而不是继承自Thread类,原因如下:1. 如果继承自Thread类了,那么你就不能再继承其他的类了。2. 如果实现的是Runnable接口,那么你的类还可以继承别的类的自由。没有有谁更适合,具体使用还是要看场合

时间: 2024-11-08 22:16:15

抽象类和实现接口有什么区别?抽象有什么好处?接口有什么好处!的相关文章

抽象类和接口联系与区别

关键字: 抽象类与接口的区别 abstract class和interface是Java语言中对于抽象类定义进行支持的两种机制,正是由于这两种机制的存在,才赋予了Java强大的面向对象能力. abstract class和interface之间在对于抽象类定义的支持方面具有很大的相似性,甚至可以相互替换,因此很多开发者在进行抽象类定义时对于 abstract class和interface的选择显得比较随意. 其实,两者之间还是有很大的区别的,对于它们的选择甚至反映出对于问题领域本质的理解.对于

PHP抽象类和接口示例和区别

抽象类(abstract class)和接口(interface)是面向对象很重要的概念,他们很相似,都是定义要实现的方法,但又有不同的使用场景,PHP的抽象类和接口有什么区别,看下面的示例. 接口(Interface)-- 定义行为 抽象类(Abstract  Class) -- 实现行为 具体类(class)--执行行为 一.接口 接口定义了某种函数的规范,声明了所需的函数和常量,但是不能指定怎么实现.接口像是对具体类中方法的规范. 接口定义了发生某一行为需要的方法.方法名.然后允许具体的类

U.2和M.2接口固态硬盘区别对比

  U.2接口 U.2接口别称SFF-8639,是由固态硬盘形态工作组织(SSD Form Factor Work Group)推出的接口规范.U.2不但能支持SATA-Express规范,还能兼容SAS.SATA等规范.因此大家可以把它当做是四通道版本的SATA-Express接口,它的理论带宽已经达到了32Gbps,与M.2接口毫无差别. U.2接口固态硬盘与数据线 主板上的U.2接口 在今年的台北电脑展上,SF-8639接口将正式改名为U.2接口,跟目前的M.2接口对应起来了,因此U.2接

link环境下,ICompareable和IComparer接口有什么区别?各自的使用目的是什么呢?

问题描述 link环境下,ICompareable和IComparer接口有什么区别?各自的使用目的是什么呢? link环境下,ICompareable和IComparer接口有什么区别?各自的使用目的是什么呢? 解决方案 ICompareable顾名思义是可比较的 IComparer是比较器 一个类,可以有不止一种比较方法,比如同样是人,可以按照身高排序,也可以按照年龄排序,所以IComparer独立于ICompareable

java序列化接口-java中序列化接口和parclable接口有什么区别和联系

问题描述 java中序列化接口和parclable接口有什么区别和联系 java中序列化接口和parclable接口有什么区别和联系 数据是存储到手机本地还是网络服务器啊 解决方案 Android中实现序列化有两个选择:一是实现Serializable接口(是JavaSE本身就支持的),一是实现Parcelable接口(是Android特有功能,效率比实现Serializable接口高效,可用于Intent数据传递,也可以用于进程间通信(IPC)).实现Serializable接口非常简单,声明

java接口管理-JNDI的学习 java命名目录服务接口

问题描述 JNDI的学习 java命名目录服务接口 学习JNDI,以在tomact内获取JNDI发布的数据源的方法为例!注意JNDI和数据源间不对等 哪位亲知道 帮我解析下 该怎么学习这块啊 解决方案 http://m.blog.csdn.net/blog/caicongyang/33722779 解决方案二: Java命名和目录接口(JNDI)JNDI(Java 命名和目录接口)(一)JNDI(Java 命名和目录接口) 解决方案三: 学习的话,,你只要熟悉jdbc,,这个你找2个例子照着敲2

.net电商接口开发(接单及状态回传接口)

问题描述 .net电商接口开发(接单及状态回传接口) 首先请大家体谅我问题的粗糙! 刚接触接口开发这个工作,想了解下关于做这个接口要用到.net的哪些技术呢! 我们是有一套自己的系统,需要从淘宝啊,京东这样的电商获取数据(xml格式)保存到本地,解析写进自己的数据库,并返回一个处理结果(xml格式),我现在没什么头绪,所以想通过这里从你们这里了解一些信息,好作为我的一个了解这个接口工作的突破口,如果你们就是做这个相关工作的,并且愿意给我一定的帮助,我先谢谢你们了. 解决方案 WebService

抽象的基础类和接口

设计程序时,我们经常都希望基础类只为自己的衍生类提供一个接口.也就是说,我们不想其他任何人实际创建基础类的一个对象,只对上溯造型成它,以便使用它们的接口.为达到这个目的,需要把那个类变成"抽象"的--使用abstract关键字.若有人试图创建抽象类的一个对象,编译器就会阻止他们.这种工具可有效强制实行一种特殊的设计. 亦可用abstract关键字描述一个尚未实现的方法--作为一个"根"使用,指出:"这是适用于从这个类继承的所有类型的一个接口函数,但目前尚没

Linq之IQueryable接口与IEnumberable区别

IEnumerable接口 公开枚举器,该枚举器支持在指定类型的集合上进行简单迭代.也就是说:实现了此接口的object,就可以直接使用foreach遍历此object:  IEnumerable 包含一个方法,GetEnumerator,返回 IEnumerator. IEnumerator 可以通过集合循环显示 Current 属性和 MoveNext 和 Reset 方法. 它是一个最优方法实现 IEnumerable 和 IEnumerator 在集合选件类启用 foreach (For