我有两个班,父母与子女用以下代码:如何为Java中的继承字段赋值?
public class Parent {
public String word;
}
父类仅包含一个公共领域。
public class Child extends Parent {
//super.word = "Simple field assignment.";
{
System.out.println(word);
}
String word2 = super.word = "Field assignment.";
{
System.out.println(word);
super.word = "Initialization block.";
System.out.println(word);
}
public Child(){
super.word="Constructor.";
System.out.println(word);
}
}
我想问的问题是,为什么简单的赋值“super.word =‘字’”是不允许的,但下面的双重任务是确定。有人可以指定后者究竟发生了什么吗?
此外,为什么在初始化块内允许分配?
如果我运行主要有以下几个程序:
public class FieldTest {
public static void main (String[] args)
{
Child c = new Child();
System.out.println("1: "+c.word);
System.out.println("2: "+c.word2);
}
}
的结果是:
null
Field assignment.
Initialization block.
Constructor.
1: Constructor.
2: Field assignment.
删除'super'。所有你需要的是'this.word'或者只是'word'。该字段被继承。 –
删除'super'或用'this'替换它不会改变任何内容。 – Pertti
这是*评论*而不是答案。 –