public class BaseTest {
public static void main(String[] args) {
Child c=new Child();
c.method();
}
}
class Base{
public String name;
Base(){//创建构造方法
name="base";
}
Base(String pname){//重载构造方法
name=pname;
}
public void method(){
System.out.println(name);
}
}
class Child extends Base{
Child(){
super("Child1");//调用父类中的构造方法、将Child1传给Base(String pname)中的pname、
name="Child2";
}
}
//当c.method执行时不应该输出的是Child1吗?为什么是Child2?难道Child2又将成员变量name给覆盖了吗?
解决方案 »
- 命名规则的一个问题
- Java-GUI的简单问题:布局的嵌套是重点?
- 【提问2】JAVA重载都有哪些用途?
- 急!!有一个数组,其中有很多元素的内容是重复的,怎样数出其中重复的数以及其重复的次数。谢谢!!
- 我女朋友陈要结婚了,新郎不是我。写段程序来哭诉吧!!!
- I/O中的序列化和NIO弄得我头痛,郁闷,散分求安慰!!!!!
- 小弟想学java,有几个问题向请教各位!
- 在Linux中,怎样让Java支持中文?
- 为什么这个class文件反编译出来成了这个样!
- 给位老大,谁知道在c中日期时间是如何存入文件的?用java(从文件读取)如何转换?
- 容器相关问题
- windows server 2003 runDll32命令 在dos运行一闪即没,在线等!!!
成员变量name只有一份,你改了他,当然变了
public class BaseTest {
public static void main(String[] args) {
Child c = new Child();
c.method();
}
}class Base {
public String name; Base() {// 创建构造方法
name = "base";
} Base(String pname) {// 重载构造方法
name = pname;
} public void method() {
System.out.println(name);
}
}class Child extends Base {
private String name;
Child() {
super("Child1");// 调用父类中的构造方法、将Child1传给Base(String pname)中的pname、
name = "Child2";
}
}
Child() {
super("Child1");
name = "Child2";
}
public String name;
}