黑马程序员技术交流社区
标题:
父类构造函数在子类中的存在
[打印本页]
作者:
石好强
时间:
2012-4-13 00:12
标题:
父类构造函数在子类中的存在
本帖最后由 石好强 于 2012-4-13 06:08 编辑
import java.io.*;
class MyLineNumberReader extends BufferedReader
{
private FileReader fr;
MyLineNumberReader(FileReader fr)
{
super(in){}
this.fr = fr;
}
public void MysetLineNumber(int num)
{
int lnum = num;
int ch = 0;
while((ch=fr.read())!=-1)
{
if((char)ch=='\r')
lnum++;
}
}
public int MygetLineNumber()
{
int ch = 0;
int lnum = 1;
while((ch=fr.read())!=-1)
{
if((char)ch=='\r')
lnum++;
}
}
public void close() throws IOException
{
fr.close();
}
public int read(char[] cbuf,int off,int len) throws IOException
{
fr.read(cbuf,off,len);
}
}
class MyLineNumberReaderDemo
{
public static void main(String[] args)
{
FileReader fr = new FileReader("PersonDemo.java");
MyLineNumberReader mlnr = new MyLineNumberReader(fr);
String line = null;
while((line = mlnr.readLine())!=null)
{
System.out.println(mlnr.MygetLineNumber()+":"+line);
}
}
}
复制代码
报错:
D:\java1203\day19>javac MyLineNumberReaderDemo.java
MyLineNumberReaderDemo.java:12: 需要 ';'
super(in){}
^
1 错误
请问这个父类的构造函数应该怎么写啊?
改成super(in);
仍然有报错,有高人帮忙改下代码吗,看看这个代码到底问题出在哪了。
作者:
蒋亮
时间:
2012-4-13 00:44
super(int);就行了啊,你后面加了大括号是什么意思?
作者:
孙国军
时间:
2012-4-13 00:56
super(in){}
this.fr = fr;
直接super(in);就可以了;
作者:
邓飞飞
时间:
2012-4-13 07:05
03.import java.io.*;
04.class MyLineNumberReader extends BufferedReader
05.{
06.
07.private FileReader fr;
08.
09.MyLineNumberReader(FileReader fr)
10.{
11.
12.
super(in){}//改为
super(in)就行了,固定格式记住就行。
13.this.fr = fr;
14.
15.}
16.
17.public void MysetLineNumber(int num)
18.{
19.int lnum = num;
20.int ch = 0;
21.
22.while((ch=fr.read())!=-1)
23.{
24.if((char)ch=='\r')
25.lnum++;
26.}
27.
28.}
29.
30.public int MygetLineNumber()
31.{
32.int ch = 0;
33.int lnum = 1;
34.while((ch=fr.read())!=-1)
35.{
36.if((char)ch=='\r')
37.lnum++;
38.}
39.
40.}
41.
42.public void close() throws IOException
43.{
44.fr.close();
45.}
46.
47.public int read(char[] cbuf,int off,int len) throws IOException
48.{
49.fr.read(cbuf,off,len);
50.
51.}
52.
53.
54.
55.}
56.
57.
58.
59.
60.class MyLineNumberReaderDemo
61.{
62.public static void main(String[] args)
63.{
64.FileReader fr = new FileReader("PersonDemo.java");
65.
66.MyLineNumberReader mlnr = new MyLineNumberReader(fr);
67.
68.String line = null;
69.while((line = mlnr.readLine())!=null)
70.{
71.System.out.println(mlnr.MygetLineNumber()+":"+line);
72.}
73.
74.
75.}
作者:
未长法
时间:
2012-4-13 08:28
MyLineNumberReader 继承了BufferedReader ,所以子类可以显式的调用父类的构造函数,super(in);就可以完成。
作者:
黑马-刘昌文
时间:
2012-4-13 10:13
12,13行代码改为 super(fr);
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2