当前位置: 技术问答>java相关
一个小问题?
来源: 互联网 发布时间:2017-03-10
本文导语: 程序,命名为TestServer.java 编译错误,但若将SuperServer类中的int x 去掉,则正常,请教原因!! class SuperServer { public SuperServer(int x) { System.out.print(35); } } class TestServer extends SuperServer { public TestServer(int y) { ...
程序,命名为TestServer.java
编译错误,但若将SuperServer类中的int x 去掉,则正常,请教原因!!
class SuperServer
{
public SuperServer(int x)
{
System.out.print(35);
}
}
class TestServer extends SuperServer
{
public TestServer(int y)
{
y = y*10;
System.out.print(y);
}
public static void main(String[] args)
{
TestServer ts = new TestServer(10);
}
}
编译错误,但若将SuperServer类中的int x 去掉,则正常,请教原因!!
class SuperServer
{
public SuperServer(int x)
{
System.out.print(35);
}
}
class TestServer extends SuperServer
{
public TestServer(int y)
{
y = y*10;
System.out.print(y);
}
public static void main(String[] args)
{
TestServer ts = new TestServer(10);
}
}
|
继承时,子类的构造方法默认调用父类中不带参数的构造方法。
所以以上的写法--XX
正确的如下:
class SuperServer
{
public SuperServer()
{
...............
}
}
class TestServer extends SuperServer
{
public TestServer(int y)
{
...............
}
}
或者:
class SuperServer
{
public SuperServer(int i)
{
...........
}
}
class TestServer extends SuperServer
{
public TestServer(int y)
{
super(y);
.........
}
}
其他补充:
1.super(),this()必须在方法的第一行,否这编译出错。
2.静态方法中不能使用super,this。
所以以上的写法--XX
正确的如下:
class SuperServer
{
public SuperServer()
{
...............
}
}
class TestServer extends SuperServer
{
public TestServer(int y)
{
...............
}
}
或者:
class SuperServer
{
public SuperServer(int i)
{
...........
}
}
class TestServer extends SuperServer
{
public TestServer(int y)
{
super(y);
.........
}
}
其他补充:
1.super(),this()必须在方法的第一行,否这编译出错。
2.静态方法中不能使用super,this。
|
子类在constructor调用了super();可是在父类里面找不到SuperServer()
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。