当前位置: 首页 > 面试题库 >

Java-是否可以继承数组的子类?还有关于Java数组的更多问题

鄂和璧
2023-03-14
问题内容

这些问题纯粹是出于好奇。我实际上不需要继承数组的子类,我只是想进一步了解它们在Java中的工作方式。

  1. 数组的Javadoc API在哪里?我为“ Arrays”类找到了一个,但是该类仅包含要在Java数组上使用的实用程序,而不是实际的数组类。这使我想到下一个问题:

  2. 是否有一个实际的数组类,其中所有数组都是子类?

  3. 是(例如)Object[]的超类String[]吗?我猜这里的答案是否定的。这些实际的课程与其他任何课程一样吗?

  4. String[]和其他人不同String[][]吗?或String[][][]等等?

  5. 如标题中所述,是否可以继承数组类(或继承THE数组类?仍然不确定如何工作,正如我上面的询问所表明的那样)?我是否可以创建自己的类,除了具有更多功能外,其实例的行为与数组完全相同?

谢谢。


问题答案:

Java语言规范回答了所有这些问题:

数组类型的直接超类是Object。每种数组类型都实现Cloneable和java.io.Serializable接口。

因此,没有,所有数组都没有通用的基类,因此也没有JavaDoc。数组的成员由规范定义。

数组类型之间的子类型在4.10.3节中定义-
是的,String[]是的子类型Object[]。另请参见ArrayStoreException。

是的String[].class != String[][].class。(请参阅第10.8节)

不,没有子类数组的语法。特别是,extends子句必须包含一个类类型(并且数组类型不是类类型)。



 类似资料:
  • 在这个问题上展开一点VBA继承模式 我正在VBA中复制一个基本的继承模式,但我想了解是否有更有效和简洁的方法来实现这一点。 考虑一下这个小测试用例。 伊尼马尔。cls公司 nimal.cls:超类 Cat.cls:动物的子类 Test.bas 通过这样做,我可以: 对Cat和Dog对象调用eat()方法,并具有特定的重写行为 这似乎可行,但很麻烦:假设您需要实现许多动物子类(狗、鸟、犰狳、鸭嘴兽、

  • 问题内容: 这是一个面试问题。 子类是否继承私有字段? 我回答“否”,因为我们无法使用“常规OOP方式”访问它们。但是访问者认为它们是继承的,因为我们可以间接或使用反射来访问这些字段,并且它们仍然存在于对象中。 回来后,我在javadoc中找到了以下引号: 超类私人成员 子类不继承其父类的私有成员。 你知道面试官的观点有什么论据吗? 问题答案: 这里的问题/答案中的大多数困惑都围绕着继承的定义。

  • 问题内容: 今天,我在采访中面临一个问题。是否可以在Singleton类上应用继承概念?我说过,由于构造函数是私有的,因此我们无法扩展该Singleton类。 他问我的下一件事是将继承应用于该Singleton类。因此,我将Singleton的构造函数作为受保护对象,认为孩子的构造函数也已受到保护。但是我错了,孩子可以有一个等于或大于该值的修饰符。 因此,我请他在这种情况下举一个真实的例子。他没能

  • 我试图写一个类(SalaryEmployee)和子类(ComissionEmployee),但我没有得到正确的工资,我不能做SE1.SetSalesMount(20000)。我哪里出了问题? 这是主要的:

  • 问题内容: 在Java中是否可以覆盖Objects数组的toString? 例如,假设我创建了一个简单的类(由于这是一个普遍的问题,所以实际上是哪个类并不重要)。客户端一旦创建了一个数组并使用了它,是否有可能不打印该数组的地址,而是打印一个定制的? PS:当然,我不能只在类中重写它,因为它与单个实例有关。 问题答案: 不会。您当然可以创建一个静态方法User.toString(User []),但

  • 问题内容: 假设我们有Java代码: 那会跑吗?进一步说明,如果我们尝试这样的操作: 那么arr1将是一个等效于2D的2D数组: 怎么样:如果我们直到运行时才知道该数组的维数怎么办? 编辑:如果这有帮助(我确定会…),我们正在尝试从形式为String的字符串解析未知维度的数组 要么 等等 Edit2:万一像我这样愚蠢的人尝试使用此垃圾,这是一个至少可以编译并运行的版本。逻辑是否合理完全是另一个问题