Java抽象类和接口[重复]

2023-11-23

在面试中我被问到以下问题。我试图回答这个问题,但我想要问题的确切答案。

如果我可以将抽象类模拟为接口,为什么java还要提供接口呢?

这意味着如果在抽象类中我可以将所有方法标记为抽象,然后抽象类将充当接口,那么为什么我需要接口。

谁能简单地解释一下我。


这是一个非常标准的面试问题。答案是:因为你可以实现多个接口,但不能扩展多个抽象类。

JRE 的示例:LinkedList既是一个List and a Deque。这些接口定义了类的行为。他们没有提供任何实施细节。虽然抽象类could提供一些。

相关问题:this and this。后者并不直接相关,但它说明了为什么需要接口,即使在抽象类就足够的情况下也是如此。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java抽象类和接口[重复] 的相关文章

  • 在 JTable 中移动行

    我使用 MVC 模式 并且有一个如下所示的 JTable List
  • 如何在一行中将字符串数组转换为双精度数组

    我有一个字符串数组 String guaranteedOutput Arrays copyOf values values length String class 所有字符串值都是数字 数据应转换为Double QuestionJava 中
  • Java程序中的数组奇怪的行为[重复]

    这个问题在这里已经有答案了 我遇到了这个 Java 程序及其以意想不到的方式运行 以下程序计算 int 数组中元素对之间的差异 import java util public class SetTest public static void
  • Android Studio 在编译时未检测到支持库

    由于 Android Studio 将成为 Android 开发的默认 IDE 因此我决定将现有项目迁移到 Android studio 中 项目结构似乎不同 我的项目中的文件夹层次结构如下 Complete Project gt idea
  • ExceptionConverter:java.io.IOException:文档没有页面。我正在使用 iText

    当我执行下面的代码时 File f new File c sample pdf PdfWriter getInstance document new FileOutputStream f document open System out p
  • Java8无符号算术

    据广泛报道 Java 8 具有对无符号整数的库支持 然而 似乎没有文章解释如何使用它以及有多少可能 有些函数 例如 Integer CompareUnsigned 很容易找到 并且似乎可以实现人们所期望的功能 但是 我什至无法编写一个简单的
  • IntelliJ IDEA 创建的 JAR 文件无法运行

    我在 IntelliJ 中编写了一个跨越几个类的程序 当我在 IDE 中测试它时它运行良好 但是 每当我按照教程将项目制作成 jar 可执行文件时 它就不会运行 双击 out 文件夹中的文件时 该文件不会运行 并显示 无法启动 Java J
  • CXF Swagger2功能添加安全定义

    我想使用 org apache cxf jaxrs swagger Swagger2Feature 将安全定义添加到我的其余服务中 但是我看不到任何相关方法或任何有关如何执行此操作的资源 下面是我想使用 swagger2feature 生成
  • 在数据流模板中调用 waitUntilFinish() 后可以运行代码吗?

    我有一个批处理 Apache Beam 作业 它从 GCS 获取文件作为输入 我的目标是根据执行后管道的状态将文件移动到两个 GCS 存储桶之一 如果管道执行成功 则将文件移动到存储桶 A 否则 如果管道在执行过程中出现任何未处理的异常 则
  • 请求位置更新参数

    这就是 requestLocationUpdates 的样子 我使用它的方式 requestLocationUpdates String provider long minTime float minDistance LocationLis
  • 从 android 简单上传到 S3

    我在网上搜索了从 android 上传简单文件到 s3 的方法 但找不到任何有效的方法 我认为这是因为缺乏具体步骤 1 https mobile awsblog com post Tx1V588RKX5XPQB TransferManage
  • 检查 protobuf 消息 - 如何按名称获取字段值?

    我似乎无法找到一种方法来验证 protobuf 消息中字段的值 而无需显式调用其 getter 我看到周围的例子使用Descriptors FieldDescriptor实例到达消息映射内部 但它们要么基于迭代器 要么由字段号驱动 一旦我有
  • org.jdesktop.application 包不存在

    几天以来我一直在构建一个 Java 桌面应用程序 一切都很顺利 但是今天 当我打开Netbeans并编译文件时 出现以下编译错误 Compiling 9 source files to C Documents and Settings Ad
  • Java中未绑定通配符泛型的用途和要点是什么?

    我不明白未绑定通配符泛型有什么用 具有上限的绑定通配符泛型 stuff for Object item stuff System out println item Since PrintStream println 可以处理所有引用类型 通
  • Tomcat 6找不到mysql驱动

    这里有一个类似的问题 但关于类路径 ClassNotFoundException com mysql jdbc Driver https stackoverflow com questions 1585811 classnotfoundex
  • 将 JSON 参数从 java 发布到 sinatra 服务

    我有一个 Android 应用程序发布到我的 sinatra 服务 早些时候 我无法读取 sinatra 服务上的参数 但是 在我将内容类型设置为 x www form urlencoded 之后 我能够看到参数 但不完全是我想要的 我在
  • Java - 不要用 bufferedwriter 覆盖

    我有一个程序可以将人员添加到数组列表中 我想做的是将这些人也添加到文本文件中 但程序会覆盖第一行 因此这些人会被删除 如何告诉编译器在下一个空闲行写入 import java io import java util import javax
  • 查看Jasper报告执行的SQL

    运行 Jasper 报表 其中 SQL 嵌入到报表文件 jrxml 中 时 是否可以看到执行的 SQL 理想情况下 我还想查看替换每个 P 占位符的值 Cheers Don JasperReports 使用 Jakarta Commons
  • android Accessibility-service 突然停止触发事件

    我有一个 AccessibilityService 工作正常 但由于开发过程中的某些原因它停止工作 我似乎找不到这个原因 请看一下我的代码并告诉我为什么它不起作用 public class MyServicee extends Access
  • 将2-3-4树转换为红黑树

    我正在尝试将 2 3 4 树转换为 java 中的红黑树 但我无法弄清楚它 我将这两个基本类编写如下 以使问题简单明了 但不知道从这里到哪里去 public class TwoThreeFour

随机推荐

  • 静态锁可以跨不同的子类工作吗?

    如果我有 abstract class Parent static object staticLock new object public void Method1 lock staticLock Method2 protected abs
  • 如何将gradle添加到子项目根项目作为依赖项?

    我有以下项目结构settings gradle include B include C rootProject name A 如何将gradle添加到子项目根项目作为依赖项 就project就方法而言 根项目没有名称 这是项目 B 的 bu
  • 计算总和为零的所有连续子数组

    给定长度为 n 的随机数 正数和负数 数组 我想要数字连续的子数组 其总和等于零 Example 鉴于我有数组a 1 1 2 2 6 6 输出将是6因为子数组如下 1 1 2 2 6 6 1 1 2 2 2 2 6 6 1 1 2 2 6
  • 使用 JPA 注释映射 java.util.Map 时键和值列名称会覆盖

    我正在研究使用 Hibernate 4 1 9 和 JPA 注释来注释地图的不同方法 如果我想存储一个 Map 其中键是实体值的属性 则标记如下所示 OneToMany mappedBy deptById targetEntity com
  • C# 属性集合[重复]

    这个问题在这里已经有答案了 我有一个特定的内置属性集合 例如 System Runtime Serialization SerializedAttribute 我想将其应用于特定的类集合 是否有可能将这些属性合而为一 我不想将它们全部显式应
  • 在一张图上绘制两张图。功能线不起作用

    我想在一张图上绘制两张图 我读这个帖子 但函数lines不起作用 什么也没有发生 我不知道会出现什么问题 有任何想法吗 编辑 可重现的例子 gt tr error 1 0 2314984 0 2314990 0 2314981 0 2314
  • MIME 类型('text/html')不是受支持的样式表

    我正在将 css 文件链接到我的express handlebars 文件 但收到此错误 拒绝应用来自 的样式http localhost 4000 cs366 style draft css 因为它的 MIME 类型 text html
  • 退出当前浏览器(返回一级)

    有时你会抛出多个browser进入一个函数进行调试 我知道你可以退出整个shebangQ但是如果您想退出第二个浏览器 参见下面的代码 并返回到第一级浏览器怎么办 我听说过类型c但这并没有退出第二层browser FUN lt functio
  • 将变量从一个 HTML 页面传递到另一个 HTML 页面的最佳实践是什么?

    我对网络应用程序编程比较陌生 所以我希望这个问题对每个人来说都不是太基础 我创建了一个 HTML 页面 其中包含一个包含 dojox 数据网格 v1 2 的 FORM 其中填充了不同杂货项目的描述行 用户选择他感兴趣的项目后 他将单击 提交
  • UIImagePickerController 的cameraViewTransform 忽略了 iOS 10 beta 上的“缩放”和“平移”

    我一直在使用下面的代码来缩放 UIImagePickerController 的实时预览以填充整个屏幕 到目前为止 这一切都很完美 几天前 我在 iPhone 5 上安装了 iOS 10 beta 7 但它不再扩展了 我可以在 UIImag
  • PCL .NET 4.5 定时器

    我正在使用 Xamarin 和 MvvmCross 构建跨平台应用程序 我需要每分钟调用服务器更新一次 稍后我将转向推送通知 但我无法在我的核心项目中设置计时器 我见过 MvvmCross N 42 但我相信目标项目比较旧 允许计时器 下面
  • Translation.E004) 您为 LANGUAGE_CODE 设置提供了一个不在 LANGUAGES 设置中的值

    我刚刚重新映像了我的计算机 因此为我的 django 项目设置了所有内容 然后在运行服务器时出现此错误 我不知道它指的是什么 因为我的原始网站是开箱即用的 而且我会说英语 并且该网站是一个内部工作网站 因此没有理由做任何基于语言的事情 有谁
  • Angular 2 中的错误处理程序和拦截器有什么区别?

    另外 对于实时 Web 应用程序 ng2 中前端错误处理的最佳解决方案是什么 使用 Http拦截器 进行前端错误处理可以吗 请解释一下这些事情 Angular 2 中的错误处理程序和拦截器有什么区别 根据 Angular 文档 它们是这样定
  • 在 Ubuntu 上更新 TimescaleDB 后 Postgres 出现错误:找不到文件

    如指定官方文档我将 Timescale PPA 存储库添加到apt 然后我通过安装它sudo apt install timescaledb postgresql 9 6 一切都工作正常 随着最近的运行sudo apt upgrade时间刻
  • 更改当前正在运行的进程的所有者

    我有一个当前正在运行的进程pid PID 并由user foo这是not root 我想将此进程的所有权转移给另一个进程user bar这也是not root 是否有一个 shell 命令可以更改进程的所有者 我正在考虑一个chown但对于
  • Stripe:为订阅添加免费天数

    是否可以为 Stripe 上的有效订阅添加免费天数 我想这样做是为了创建一个推荐计划 当用户推荐某人时 他将获得 10 天的免费时间 我认为一个好方法是更新current period endvar 但我在文档中找不到如何执行此操作 例如
  • Array.Sum() 导致溢出

    我有一个像这样的 int 数组 int arr 256741038 623958417 467905213 714532089 938071625 然后我创建了一个 int64 var Int64 sum arr Sum 但这导致了溢出 运
  • Delphi XE - RawByteString 与 AnsiString

    我在这里有一个类似的问题 Delphi XE 我应该使用 String 还是 AnsiString 在决定在我的 大型 库中使用 ANSI 字符串是正确的之后 我意识到我实际上可以使用 RawByteString 而不是 ANSI 因为我将
  • 创建可下载的自定义主题并在运行时应用它

    我正在制作一个 Android 应用程序 需要允许客户端维护来自服务器的资源 其中包括字符串 可绘制对象等 我已经创建了一种机制来下载包含所有这些文件的 zip 文件 并且它们能够非常轻松地更改字符串 我还创建了一种允许客户端更改 UI 控
  • Java抽象类和接口[重复]

    这个问题在这里已经有答案了 在面试中我被问到以下问题 我试图回答这个问题 但我想要问题的确切答案 如果我可以将抽象类模拟为接口 为什么java还要提供接口呢 这意味着如果在抽象类中我可以将所有方法标记为抽象 然后抽象类将充当接口 那么为什么