什么是抽象类和接口?

作者&投稿:狐顾 (若有异议请与网页底部的电邮联系)
~

一、两者相同点

1、不能直接实例化,如果要实例化,抽象类变量必须指向实现所有抽象方法的子类对象,接口变量必须指向实现所有接口方法的类对象。

2、抽象类里的抽象方法必须全部被子类所实现,子类不能全部实现父类抽象方法,那么该子类还只能是抽象类。一个类实现接口的时候,如不能全部实现接口方法,那么该类也只能为抽象类。

二、两者不同点 

1、默认的方法实现

抽象类可以有默认的方法实现;接口,Java8规定可以为接口提供默认实现的方法并且不用强。

2、实现

制子类来重写子类使用extends关键字来继承抽象类。如果子类不是抽象类的话,它需要重写抽象类中的抽象方法;接口子类使用关键字implements 来实现接口,它需要重写接口中没有默认。 

3、构造器

抽象类可以有构造器,接口不能有构造器。

4、与正常Java类的区别

除了不能实例化抽象类之外,和普通Java类没有任何区别;接口是完全不同的类型外。

5、访问修饰符

抽象方法可有public.protected和default、abstract修饰符。不能用privatestatic.synchronize、 native 修饰。

接口属性默认修饰符是publicstatic final (必须赋初值) ,方法默认修饰符是publicabstract. Java8 开始出现静态方法,多加static关键字。

6、main方法

并且可以运行它;接口没有main方法,因此不能运行它。

7、多继承

抽象类可以继承一个类和实现多个接口;接口只可以继承一个或多个接口。

抽象类的运用意义

在面向对象方法中,抽象类主要用来进行类型隐藏。构造出一个固定的一组行为的抽象描述,但是这组行为却能够有任意个可能的具体实现方式。

这个抽象描述就是抽象类,而这一组任意个可能的具体实现则表现为所有可能的派生类。模块可以操作一个抽象体。

由于模块依赖于一个固定的抽象体,因此它可以是不允许修改的;同时,通过从这个抽象体派生,也可扩展此模块的行为功能。

为了能够实现面向对象设计的一个最核心的原则OCP(Open-Closed Principle),抽象类是其中的关键所在。




抽象类和接口的区别是什么?
1、抽象类:抽象类是对象的抽象。2、接口:接口是一种行为规范。三、成员变量不同 1、抽象类:抽象类中的成员变量可以被不同的修饰符来修饰。2、接口:接口中的成员变量默认的都是静态常量(static final)。参考资料来源:百度百科——抽象类 百度百科——接口 ...

“抽象类”和“接口”的区别是什么?
1)在抽象类中可以写非抽象的方法,从而避免在子类中重复书写他们,这样可以提高代码的复用性,这是抽象类的优势;接口中只能有抽象的方法。 2)一个类只能继承一个直接父类,这个父类可以是具体的类也可是抽象类;但是一个类可以实现多个接口。 图中如果Sparrow继承类Bird 类,Boyin继承Airplane类,Sparrow 和Boyin想...

接口和抽象类是一个概念吗?
抽象是对类的抽象,是一种模板设计,而接口是对行为的抽象,是一种行为的规范。

“抽象类”和“接口”的区别是什么?
抽象类是用来捕捉子类的通用特性的 。它不能被实例化,只能被用作子类的超类。抽象类是被用来创建继承层级里子类的模板。接口 接口是抽象方法的集合。如果一个类实现了某个接口,那么它就继承了这个接口的抽象方法。这就像契约模式,如果实现了这个接口,那么就必须确保使用这些方法。接口只是一种形式,接...

Java 中接口和抽象类的 7 大区别!
抽象类抽象类和接口类似,它也是用来定义对象的公共行为的,并且它也不能直接实例化,抽象类的实现关键字为 abstract class,子类用 extends 关键字继承父类。 抽象类的使用如下:publicabstractclassAbstractExample{\/\/定义普通变量intcount=2;\/\/定义私有变量privatestaticinttotal=10;\/\/定义抽象方法public...

抽象类和接口的区别和相同点
都可以被用来定义一组相关的行为:抽象类和接口都可以用来定义一组相关的行为或服务,但接口中的方法默认是public abstract的,因此必须由其他类来实现。可以包含常量:抽象类和接口都可以包含常量,这允许在多个相关类之间共享值。可以在运行时动态绑定:抽象类和接口中的方法可以在运行时动态绑定到实际的...

接口和抽象类有什么区别?
接口是一种行为规范。抽象类是对象的抽象。1、抽象类不能直接实例化,并且对抽象类使用 new 运算符会导致编译时错误。虽然一些变量和值在编译时的类型可以是抽象的,但是这样的变量和值必须或者为 null,或者含有对非抽象类的实例的引用。2、允许(但不要求)抽象类包含抽象成员。3、抽象类不能被密封...

抽象类和接口有什么异同
5、抽象类和接口都是用来抽象具体对象的,但是接口的抽象级别最高。6、抽象类可以有具体的方法和属性,接口只能有抽象方法和不可变常量。7、抽象类主要用来抽象类别,接口主要用来抽象功能。抽象类往往用来表征对问题领域进行分析、设计中得出的抽象概念,是对一系列看上去不同,但是本质上相同的具体概念的...

抽象类和接口的区别
从这个角度看,接口可以理解为一种特殊的抽象类。但与抽象类不同的是,Java只允许单继承但允许多接口实现。因此,通过接口可以更好地扩展一个类的功能。2. 使用场景 在需要定义一些公共行为或属性时,可以使用抽象类。当需要为一些不同的对象定义一些共同的行为或状态时,可以使用接口。例如,如果要创建...

“抽象类”和“接口”的区别是什么?
1、 接口是抽象类的变体,接口比抽象类更加抽象,接口中所有的方法都是抽象的。2、每个类只能继承一个抽象类,但是可以实现多个接口。3、抽象类中不一定都是抽象方法,抽象的而抽象类可以实现部分方法。但是接口中方法必须为public修饰的、抽象的不能实现具体的法。4、接口中基本数据类型为static而抽象类...

勉县15564097072: 什么叫接口?什么叫抽象类? -
邱范包醛: java里有这个概念 首先说抽象类 抽象类呢就是类里面含有了抽象的方法 抽象的方法呢 就是没有实现的方法 有抽象的方法当然不能实例化 你想如果它能实例 那么这个实例调用那个没有实现的抽象类会有什么结果 虽然不能实例化 但也不是没有用 抽象类都是用于被继承的 可以在它的子类中 把抽象的方法实现了 用子类事例化对象(首先这个子类不是抽象类) 如果抽象类 弄明白了 接口也就好理解了 接口 你可以理解为一个特殊的抽象类 就是它所有的方法都是抽象方法.

勉县15564097072: 【考试】什么是抽象类?什么是接口?他们之间的区别是什么? -
邱范包醛: 接口是一种规范,定义了规范一定要实现它,不然这个规范没什么实际意义.而抽象类也是一种类,只不过是抽象的,抽象的东西肯定不会有实例的,所以它不能创建实例,只能通过他的子类实现,抽象类里可以有抽象方法和普通的方法,它的子类要重写抽象的方法,但普通方法不一定要重写,

勉县15564097072: 可以详细说一下抽象类和接口吗?简单易懂一些 -
邱范包醛: 普通类中只要含有一个纯虚函数,该类就是抽象类.1、抽象类只能用作其他类的基类,不能建立抽象类对象,即不可实例化,它只是一种规范、约定、行为说明,子类继承抽象类后,子类对象的函数名参数格式被制约,但是子类函数内部可以...

勉县15564097072: 请问接口和抽象类各是什么意思? -
邱范包醛: 抽象方法是必须实现的方法.就象动物都要呼吸.但是鱼用鳃呼吸,猪用肺呼吸. 动物类要有呼吸方法.怎么呼吸就是子类的事了. 现在有很多讨论和建议提倡用interface代替abstract类,两者从理论上可以做一般性的混用,但是在实际应用中...

勉县15564097072: 抽象类和接口怎么理解 -
邱范包醛: 在Java语言中,接口(Interface)是对符合接口需求的类的一套规范.接口与包相似,也是用来组织应用中的各类并调节它们的相互关系的一种结构,更准确地说,接口是用来实现类间多重继承功能的结构 1 接口概念 接口主要作用是可以帮助实...

勉县15564097072: 什么是接口?什么是抽象类?
邱范包醛: 抽象类和接口很类似,都是定义规则. 抽象类不能被实例化,但是可以被继承,继承了抽象类,就必须实现他的抽象方法,抽象方法不能有方法体,抽象类中还可以写普通方法, 接口也不能被实例化,可以被其他类继承,继承了接口必须实现接口类所有的方法,接口中的方法都没有方法体,默认不要加public声明,

勉县15564097072: 什么是抽象类,什么是接口,两者有什么区别, -
邱范包醛: 给你个最全面的答案吧!不懂直接call我!声明方法的存在而不去实现它的类被叫做抽象类(abstract class),它用于要创建一个体现某些基本行为的类,并为该类声明方法,但不能在该类中实现该类的情况.不能创建abstract 类的实例.然而可...

勉县15564097072: 抽象类和接口的区别是什么?
邱范包醛: 具有关键字abstract ,在实现内容上没有完全定义的类就叫抽象类. 抽象类和接口的区别如下: ① 在类来继承抽象类时,只需实现部分具体方法和全部抽象方法,而实现接口则要实现里面的全部方法. ②在接口中无成员变量,而抽象类中可有成员变量. 在Java中引进接口主要是为了解决多继承的问题. 参考资料:http://forlan.bokee.com/1009582.html

勉县15564097072: JAVA抽象类和接口的区别,使用场景 -
邱范包醛: (1)如果预计要创建类的多个版本,则创建抽象类.抽象类提供简单的方法来控制类版本.  (2)如果创建的功能将在大范围的异类对象间使用,则使用接口. (3)如果要设计小而简练的功能块,则使用接口.  (4)如果要设计大的功能单元,则使用抽象类.  (5)如果要向类的所有子类提供通用的已实现功能,则使用抽象

勉县15564097072: 抽象类和接口的区别及用法 -
邱范包醛: 简单来说,接口是公开的,里面不能有私有的方法或变量,是用于让别人使用的,而抽象类是可以有私有方法或私有变量的,另外,实现接口的一定要实现接口里定义的所有方法,而实现抽象类可以有选择地重写需要用到的方法,一般的应用里,最顶级的是接口,然后是抽象类实现接口,最后才到具体类实现.还有,接口可以实现多重继承,而一个类只能继承一个超类,但可以通过继承多个接口实现多重继承,接口还有标识(里面没有任何方法,如Remote接口)和数据共享(里面的变量全是常量)的作用.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网