java - 如何重写构造函数

标签 java inheritance constructor overriding

这是我的代码:

import java.io.*;
public class WrappedWriter extends PrintWriter {
  public WrappedWriter(OutputStream o){
    super(o);
  }

  public WrappedWriter(File f) throws FileNotFoundException{
    super(f);
  }

  public WrappedWriter(String s) throws FileNotFoundException{
    super(s);
  }
}

正如您所看到的,PrintWriter 正在由此类进行扩展。在 WrappedWriter 类中,我继续创建一个字符串,可以将其打印到终端或写入文件。有人告诉我,为了将其写入文件,我必须在此处的第二个和第三个构造函数中插入一些内容。我已经放置了 super() 来调用父类,但我试图找出如何通过在构造函数中键入代码来编写最终到达文件 f 的字符串。有人能指出我正确的方向吗?这是当我在交互模式下输入某些输入时应该发生的情况。

 WrappedWriter out = new WrappedWriter(System.out)
 out = new WrappedWriter("gettysburg.txt");
 out.println("Four score and seven years ago our fathers brought forth, upon this continent, a new nation, conceived in Liberty, and dedicated to the proposition that all men are created equal.")
 out.close();

输入 out.close 后,应该将字符串写入文件 gettysburg.txt,但它没有这样做。

最佳答案

I am told that in order to write to a file, I have to insert something into the second and third constructor[s]

您被误导了。这两个构造函数都会导致编写器写入文件。请参阅 PrintWriter 的 Javadoc。

关于java - 如何重写构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22262782/

相关文章:

java - 使用 Hibernate 持久化接口(interface)集合

java - 最好使用正则表达式或 Stringtokenizer 在此 : William Faulkner - 'Light In August' 中查找作者和书名

java - Decorator模式链式方法如何调用?

javascript - 原型(prototype)继承设置

c++ - 从 C++ 中的另一个源访问类,初始化构造函数时出现问题

c++ - 为什么你必须定义一个空的构造函数c++

c# - 我可以为长继承链中的子类调用最顶层的构造函数吗?

java - 弱引用与设置为 Null

java - 接口(interface)真的可以用来实现多重继承吗

java - 无法将聚合查询从 mongodb 转换为 Spring Data MongoDb