黑马程序员技术交流社区
标题:
新手求助,继承中的构造函数
[打印本页]
作者:
邝雄伟
时间:
2012-12-3 16:21
标题:
新手求助,继承中的构造函数
如此简单的代码,就是想不明白为什么输出的是0而不是3呢,有没有人可以解析一下,万分感谢
class Demo
{
public static void main(String[] args)
{
Zi z = new Zi(3);
System.out.println(z.a);
}
}
class Fu
{
int a;
Fu(int a)
{
this.a=a;
}
}
class Zi extends Fu
{
int a;
Zi(int a)
{
super(a);
//this.name=name;
}
}
作者:
xjandrew
时间:
2012-12-3 17:15
class Fu
{
int a;
Fu(int a)
{
this.a=a;
}
}
class Zi extends Fu
{
int a;
Zi(int a)
{
这里的3传给父类啦,子类的a还保持初始化的值0.
super(a);
//this.name=name;
}
}
主函数中你再加两句
Fu f = new Zi(3);
System.out.println(f.a);
父类的a值为3
作者:
崔维友
时间:
2012-12-3 17:17
本帖最后由 崔维友 于 2012-12-3 17:21 编辑
你的代码中,子类并没有获得传入的值。如例:
class ExtendsDemo
{
public static void main(String[] args)
{
Children child = new Children("The name");
System.out.println(child.name);
}
}
class Father
{
String name;
Father(String name)
{
this.name=name;
System.out.println("Father's name : "+this.name);
}
}
class Children extends Father
{
String name;
Children(String childrenname)
{
super(childrenname); //直接给了父类,子类没有得到
System.out.println("Children's name : "+this.name);
}
}
复制代码
java.PNG
(3.03 KB, 下载次数: 14)
下载附件
2012-12-3 17:19 上传
作者:
黑马_张伟
时间:
2012-12-3 17:20
变量不会被覆盖,父类和子类中的a不是同一个,其他的就是2L说的了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2