当前位置: 首页 > 知识库问答 >
问题:

Java语言如何用私有构造函数重写类中的方法

年嘉禧
2023-03-14

我想覆盖类LocalDate的toString()方法。我知道如何使用像java.util.Date这样的公共构造函数覆盖类的toString()方法:

Date date = new Date () {
   @override
   public String toString() {...}
}

但我不能对像java这样有私有构造函数的类做同样的事情。时间LocalDate有什么办法可以解决这个问题吗?

共有2个答案

鄢博简
2023-03-14

我们不能重写final类的方法。

糜宜民
2023-03-14

简单的回答是:你不能。

javadoc类告诉您:

公共最终类LocalDate

您无法扩展最终类,因此您无法更改其任何方法的行为,至少在Java中是这样。(Kotlin提供了扩展方法,允许你做“某种”事情)。

但是正如评论中指出的,假设您的问题是正确格式化Date, LocalDate,...实例,那么覆盖toString()只是错误的方法。您使用DateForware将日期对象转换为格式化的日期字符串,请参阅此处获取指导。

 类似资料:
  • 为什么在派生类构造函数中调用超类构造函数时id的值为0?当创建子对象时,什么时候在堆中为该对象分配内存?在基类构造函数运行之后还是之前?

  • 问题内容: 在Java中,在抽象类中使用私有构造函数的目的是什么? 在一个评论中,我得到了这个问题,我很好奇,在什么情况下我们需要以这种方式使用构造函数? 我认为它可以与抽象类中的另一个构造函数一起使用,但这非常简单。它也可以用于构造将超过抽象类的静态内部类。 也许还有更优雅的用法? 问题答案: 如果构造函数是类的 唯一 构造函数,则原因很明确:防止子类化。一些类仅充当静态字段/方法的持有者,而不

  • 我有以下课程: 我想写一个单元测试,它会检查 调用会导致调用私有方法2次,并且 调用会导致调用一次私有方法。 我知道在Mockito/PowerMockito中使用间谍对象来计算私有方法调用的数量是可能的,但是AFAIK这些方法只有在测试类构建后调用所讨论的方法时才有效。 有没有可能在不改变的构造函数的情况下编写上面描述的单元测试?

  • 问题内容: 假设我们有以下代码: 当我们创建一个对象时,该对象最初称为父类构造函数。但是就像私人的一样- 我们收到一个错误。一个好的例子和解决这个问题的方法是多少? 问题答案: 没有出路。你必须创建一个可用的(,或默认)的超级构造函数能够延长。 这种表示法通常用于实用程序类或单例中,在这种情况下,您不希望用户通过扩展实例和实例化子类,或者只是通过调用类的构造函数来自己创建类的实例。 当您只有一个具

  • 问题内容: 我有一堂课。 在我的类方法中,我实例化该类,如下所示: 编译器将此代码转换为: 使用反射表明该类具有以下综合的构造函数: 由于该类是,因此编译器会将该构造函数添加到该类中,因此没有人可以实例化该类。但是很明显,该类应该能够实例化它,因此编译器添加了另一个包私有构造函数,后者又调用了私有构造函数。另外,由于package- private构造函数的名称中包含该名称,因此普通的Java代码

  • 问题内容: 构造函数可以私有吗?私有构造函数有什么用? 问题答案: 是的,构造函数可以是私有的。有不同的用途。一种这样的用法是用于单例设计反模式,我建议你不要使用它。另一个更合理的用法是委派构造函数。你可以让一个构造函数接受很多不同的选项,而这些选项实际上是实现细节,因此你将其设为私有,但是其余的构造函数将委托给它。 作为委派构造函数的示例,以下类允许你保存值和类型,但仅允许你对类型的子集进行保存