【问题标题】:How can we create a class like Object class in java我们如何在java中创建一个类似Object类的类
【发布时间】:2014-10-15 11:21:50
【问题描述】:

在java中,每个类默认扩展Object,这样,我们如何让我们的A类可以被我们应用程序中的任何类默认扩展。

【问题讨论】:

  • 您的意思是 should - be 扩展而不是 can-be?所有非final类都可以扩展。
  • 没有办法隐式地让项目中的每个类都扩展一个类。 Object 是类默认扩展的唯一类。您当然可以创建一个类并让每个类显式扩展它。

标签: java


【解决方案1】:

简短的回答 - 你不能。

略长一点的答案 - 您可以创建自己的自定义空类...

public class MyObject {
}

.. 并让项目中的每个类都扩展它...

public class MyOtherClass extends MyObject {
    public int doStuff();
}

...但这真的不太可能有任何(好的)用途。

【讨论】:

    【解决方案2】:

    没有。其他类默认扩展的类是Object。你无法改变这一点。它是 Java 语言的基本组成部分。

    JLS 8.1.4 说:

    给定一个(可能是通用的)类声明C<F1,...,Fn> (n ≥ 0, C ≠ Object),如果存在extends 子句,则类类型C<F1,...,Fn> 的直接超类是C 声明的extends 子句中给出的类型, 或Object 否则。

    没有“回旋余地”。


    如果您希望应用程序中的所有类都是 Object 以外的子类,那么您必须在每个类上都有一个 extends 子句。 p>

    【讨论】:

      【解决方案3】:

      您不能定义自己的类来代替 Object 类。

      但是,您可以创建自己的基类,并让您的所有类都从该基类扩展。

      【讨论】:

        【解决方案4】:

        回答:你不能!!

        • Object class是java中所有classes的父对象

        • 你使用的 classesobject class 的子类 默认

        • 你可以保证总会有某些方法,比如 toString()equals()hashCode()

        • 它有助于synchronizationgarbage collection


        为什么会这样:

        Java 是这样设计的,所以 Object 类通过提供上述所有内容以及更多内容来提供帮助 对象通信和对象识别的基本特征,因此具有这些 不需要显式扩展类的功能


        更多信息:

        1. Have a look at this Stackoverflow answer here
        2. Oracle Docs
        3. Grep Code

        【讨论】:

          【解决方案5】:

          没有办法做到这一点。

          你只需要明确地让每个类都扩展 A。像这样

          public class B extends A {
          
          }
          

          【讨论】:

            【解决方案6】:

            答案是你不能。

            对象类是类层次结构的根。每个类都有 Object 作为超类。所有对象,包括数组,都实现了这个类的方法。

            【讨论】:

              【解决方案7】:

              如果不明确使用extends,当然不可能做到这一点。 Object 是每个 Java Class 的父类,所以我认为你需要坚持下去。除此之外,你总是可以用你喜欢的类来扩展一个类。

              希望对你有帮助。

              克莱门西奥·莫拉莱斯·卢卡斯。

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 2013-07-05
                • 1970-01-01
                • 2011-01-03
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2021-06-02
                • 1970-01-01
                相关资源
                最近更新 更多