抽象类和接口的异同?

author author     2023-04-07     485

关键词:

参考技术A

一、两者相同点

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),抽象类是其中的关键所在。

java面试基础题------》抽象类和接口有什么异同

划重点!!!!1、抽象类(abstractclass)和接口(interface)有什么异同? 相同点*都不能被直接实例化,都可以通过继承实现其抽象方法。*都是面向抽象编程的技术基础,实现了诸多的设计模式。不同点*接口支持多继承;抽... 查看详情

抽象类(abstractclass)和接口(interface)有什么异同?

相同点:1.抽象类和接口都不能被实例化,但可以定义抽象类和接口类型的引用。2.一个类如果继承了抽象类和接口,必须要对其中的抽象方法全部实现。(接口中方法默认的是publicabstract修饰的)否则该类仍然需要被声明为抽象... 查看详情

抽象类与接口的异同

抽象类和接口是java中非常重要的两个概念,是java多态的基础,在java的设计模式中他们无处不在,为了归纳记忆,我们总结下抽象类和接口的相同和不同之处。我们先说说他们各自的特点:   接口:   1、... 查看详情

抽象类和接口的异同?

...术A一、两者相同点1、不能直接实例化,如果要实例化,抽象类变量必须指向实现所有抽象方法的子类对象,接口变量必须指向实现所有接口方法的类对象。2、抽象类里的抽象方法必须全部被子类所实现,子类不能全部实现父类... 查看详情

java中抽象类和接口的异同点(代码片段)

前言本文简单介绍抽象类,接口以及它们的异同点,另附简单的代码举例。一、抽象类是什么?在Java语言中使用abstractclass来定义抽象类。抽象类是不能被实例化的,即不能用new关键字来实例化对象。包含抽象方... 查看详情

java---抽象类和接口基础知识详解(及两者异同点)(代码片段)

    在本篇博客中将介绍JAVA里抽象类和接口的基础知识以及两者的异同点,在有继承和多态的基础知识上学习会更好~目录抽象类基础知识抽象类的定义、创建等基础抽象类的几点说明(一) 为何使用抽象方法抽象... 查看详情

java中接口和抽象类的异同点

抽象类和接口的区别:A:成员区别 抽象类: 成员变量:可以变量,也可以常量 构造方法:有 成员方法:可以抽象,也可以非抽象 接口: 成员变量:只可以常量,默认修饰符:publicstaticfinal 成员方法:只可以抽象,默认修饰符... 查看详情

深入delphi编程理解之接口接口与类的异同及接口的声明和实现(代码片段)

  一、抽象类与接口的异同    接口简单的理解可认为是一个抽象类,我们先定义一个抽象类和接口来对比之间的异同,代码如下: typeIFormattedNumber=interface//定义接口functionFormattedString:string;end;TFormattedNumber=class//定义抽象... 查看详情

接口和抽象类的异同

接口和抽象类的异同    今天来说说接口和抽象类的异同:      相同点:        都可以定义抽象方法,并且定义的抽象方法都需要被子类或者实现类重写        都不能实例化对象,接口需要赋... 查看详情

接口与抽象类的异同

相同点1:都无法实例化。2.都可以包含抽象方法。3.都可以有静态方法(有方法体)异同点1.抽象类可以有成员方法的实现,而接口不能有成员方法的实现,只能声明,不能有方法体。2.抽象类可以有成员变量,接口只有静态常量... 查看详情

抽象类(abrstractclass)与接口(interface)有何异同

抽象类:如果一个类中包含抽象方法(用abstract修饰的方法),那么这个类就是抽象类接口:是指一个方法的集合,接口中的所有方法都没有方法体相同点:1)都不能被实例化2)接口的实现类或抽象类的子类都只有实现了接口... 查看详情

java中的接口和抽象类的异同

接口(interface)和抽象类(abstractclass)是支持抽象类定义的两种机制。接口是公开的,不能有私有的方法或变量,接口中的所有方法都没有方法体,通过关键字interface实现。抽象类是可以有私有方法或私有变量的,通过把类或者类中... 查看详情

抽象类(abstract)和接口(interface)的异同点

接口是抽象类的延伸,是抽象类的特殊化相同点:  都可以写抽象方法,规定了子类必须要重写的方法(所以不能有抽象构造方法和抽象静态方法);      为什么不能有抽象构造方法:构造方法是类实例化时的构造过... 查看详情

接口和抽象类的异同(代码片段)

...比较简陋见笑了。。正文首先分别概括一下什么是接口和抽象类。接口:简单说就是一系列抽象方法的集合,如果一个类实现(implements)了某个接口,即继承了这个接口的所有抽象方法,则该类必须实现这些抽象方法。DEMO//接... 查看详情

抽象类和接口的区别

抽象类和接口的区别一、抽象类与接口的相同之处  1、抽象类和接口都不能被实例化,都用于被其他类实现或继承  2、他们都可以包含抽象方法,并且在其他类继承或实现的时候都必须实现这些抽象方法 二、抽象类与... 查看详情

关于类抽象类和接口的继承关系

关于类、抽象类和接口的继承关系一、类和抽象类当实体类Impl继承一个抽象类Abstract,该实体类Impl可以不用实现抽象类Abstract中的所有方法,但是必须实现抽象类中的所有抽象方法。 二、类和接口当实体类Impl直接实现接口In... 查看详情

抽象类和接口

区别:1.抽象类要被子类继承,接口要被类实现;2.接口只能作方法声明,抽象类中既可以作方法声明,也可以作方法实现;3.接口里定义的变量只能是公共的静态的常量(publicstaticfinal修饰),而抽象类中的变量是普通变量;4.接... 查看详情

抽象类和接口的区别

1.抽象类中可以有普通成员变量,接口中没有普通成员变量。2.抽象类和接口中都可以包含静态成员变量,抽象类中静态成员变量的访问类型是任意的,接口中必须为(publicstaticfinal)(默认)。3.抽象类可以包含非抽象的普通方法,接... 查看详情