首页 > 编程语言 >Java面试题 P8:接口和抽象类的区别

Java面试题 P8:接口和抽象类的区别

时间:2023-07-26 23:22:21浏览次数:40  
标签:面试题 Java 实现 子类 P8 接口 抽象 抽象类 可以

普通回答:

1、抽象类可以有抽象方法和实现的方法,可以存在普通成员函数,而接口中只能存在public interface方法。

2、抽象类中的成员变量可以是各种类型的,而接口中的成员变量只能是public static final类型的。

3、抽象类只能继承一个,接口可以实现多个。

  • 抽象类和接口的异同点

 

相同点:1.可以定义抽象方法

2.不能创建本类对象,只能由子类去实例化子类对象

不同点:1.子类要扩展它们时,对抽象类用的是extends关键字(继承),对接口用的是implements(实现)

2.抽象类可以去实现接口,接口只能继承接口,不能继承类

3.一个类可以实现多个接口,但只能继承一个抽象类

4.抽象类可以有构造方法,接口中不能有

实例:

 

 

 

 

接口的设计目的,是对类的行为进行约束(更准确的说是一种“有”约束,因为接口不能规定类不可以有什么行为),也就是提供一种机制,可以强制要求不同的类具有相同的行为。它只约束了行为的有无,但不对如何实现行为进行限制。

抽象类的设计目的,是代码的复用。

抽象类是对类本质的抽象,抽象类包含并实现子类的通用特性,将子类存在差异化的特性进行抽象,交由子类去实现。

接口是对行为的抽象,接口的核心是定义行为,即实现类可以做什么,至于实现类主体是谁,是如何实现的,接口并不关心。

 

使用场景:当你关注一个事物的本质的时候,用抽象类;当你关注一个操作的时候,用接口。

 

标签:面试题,Java,实现,子类,P8,接口,抽象,抽象类,可以
From: https://www.cnblogs.com/wuzexin/p/17583788.html

相关文章

  • Java面试题 P7:重载和重写的区别
    重载:发生在同一个类中,方法名必须相同,参数类型不同,参数个数不同,参数顺序不同,方法返回值和修饰符可以不同。1publicintadd(inta,Stringb)2publicStringadd(inta,Stringb)3//编译时会报错4重载与返回值无关。重写:发生在父子类中,方法名、参数列表必须相同,返回值范围......
  • java RedissonClient用法
    JavaRedissonClient用法Redis是一个开源的、基于内存的数据结构存储系统,它可以作为缓存、消息队列和分布式锁等多种用途。Redisson是一个基于Redis的Java驱动库,它提供了一些方便易用的接口和功能来操作Redis。RedissonClient是Redisson的核心对象,它用于与Redis服务器建立连接并......
  • java ReUtil提取${}里的数据
    提取${}里的数据(Java版)作为一名经验丰富的开发者,我很高兴能够教会你如何使用Java中的ReUtil提取${}里的数据。在开始之前,我们先来了解一下整个流程。整体流程下面是提取${}里的数据的整体流程,我们可以用表格来展示每个步骤的详细内容:步骤描述1定义正则表达式2创......
  • java RDM协议编程
    JavaRDM协议编程指南1.简介RDM(ReutersDataModel)是一种用于金融市场数据的标准化消息格式。在Java中,我们可以使用RDM协议来编写程序,实现金融市场数据的读取、解析和处理。本文将指导您如何使用Java编写RDM协议相关的代码。2.步骤下面是使用RDM协议编写Java程序的基本步骤:......
  • java PromQL
    JavaPromQL:使用Java进行Prometheus查询的完全指南Prometheus是一个开源的监控系统和时间序列数据库,广泛用于监控和报警。PromQL是Prometheus的查询语言,用于从Prometheus数据库中检索和操作时间序列数据。在本文中,我们将介绍如何使用Java编写PromQL查询,并处理返回的结果。准备......
  • java MethodHandle与Reflection 效率
    JavaMethodHandle与Reflection效率在Java编程领域中,反射(Reflection)是一种强大的功能,它允许我们在运行时检查和修改类、方法、字段等的信息。然而,反射也因为其相对较慢的性能而备受诟病。为了解决这个问题,Java7引入了MethodHandle,这是一种新的方法调用机制,它可以提供比反射更高效......
  • java Math 求和
    JavaMath求和如果你想在Java中求和,你可以使用java.lang.Math类中的方法来实现。在本文中,我将向你展示如何使用Math类来实现Java求和。JavaMath求和的流程下面是实现JavaMath求和的步骤,可以用表格展示:步骤描述步骤1声明并初始化要相加的数字步骤2使用Math类中......
  • java List查询
    JavaList查询详解在Java编程中,List是一种常用的数据结构,它允许存储多个元素,并且可以根据索引或元素值进行快速访问。在实际开发中,我们常常需要对List进行查询操作,以获取特定的元素或满足某些条件的元素。本文将详细介绍如何使用JavaList进行查询,并提供代码示例以帮助读者更好地......
  • 1、java基础语法
    1、swicth(表达式){}表达式的值可以的数据类型:byteshortintcharString枚举( jdk1.8新特性)......
  • java swagger 设置token
    实现JavaSwagger设置Token的步骤为了实现JavaSwagger的Token设置,我们需要按照以下步骤进行操作:步骤描述步骤1导入所需的依赖库步骤2配置SwaggerSecurity步骤3实现自定义的Token验证过滤器步骤4将Token验证过滤器应用到Swagger上接下来,我们将逐步详......