程序是这个: 我的本意输出是:HappyActor
SadActor但程序确输出
SadActor
SadActor找了20分钟都没有找到原因,请教大家,我哪里有问题??
abstract class Actor{
public abstract void act();
}class HappyActor extends Actor{
public void act(){
System.out.println("HappyActor");
}
}class SadActor extends Actor{
public void act(){
System.out.println("SadActor");
}
}class Stage{
private Actor actor = new HappyActor();
public void performplay(){
actor.act();
}
public void change(){}{
actor = new SadActor();
}
}
public class Transmogrify { /**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Stage stage = new Stage();
stage.performplay();
stage.change();
stage.performplay(); }}
SadActor但程序确输出
SadActor
SadActor找了20分钟都没有找到原因,请教大家,我哪里有问题??
abstract class Actor{
public abstract void act();
}class HappyActor extends Actor{
public void act(){
System.out.println("HappyActor");
}
}class SadActor extends Actor{
public void act(){
System.out.println("SadActor");
}
}class Stage{
private Actor actor = new HappyActor();
public void performplay(){
actor.act();
}
public void change(){}{
actor = new SadActor();
}
}
public class Transmogrify { /**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Stage stage = new Stage();
stage.performplay();
stage.change();
stage.performplay(); }}
actor = new SadActor();
}这是我的:public void change(){
actor = new SadActor();
}你多写了一个大括号,结果(){}{
actor = new SadActor();
}
被认为是初始化段