当前位置:编程学习 > JAVA >>

新手求助。。。

class Farmer {
public void plant (Fruit fruit)
{
System.out.println("plant:"+fruit.getName());
}
}
class Fruit
{
private String name;
public Fruit(String name)
{
System.out.println("Fruit的构造函数");
this.name=name;
}
public String getName()
{
System.out.println("getName");
return this.name;
}
}

class Pear extends Fruit
{
//private String name;
public Pear (String name)
{
super(name);
//private String name;为什么只能使用终态
}

}

class Apple extends Fruit
{
//private String name;
public Apple(String name)
{
super (name);

}
}

public class Test {

 
{}
/**
 * @param args
 */
public static void main(String[] args) {
Farmer farmer = new Farmer();
farmer.plant(new Pear("我是传进来的name"));
farmer.plant(new Apple("我是传进来的Child"));
// TODO Auto-generated method stub

}

}

我打算是创建一个父类Fruit,创建其两个子类Pear、Apple。并创建用于输出Fruit的私有变量的Farmer类。最后用含有入口函数的Test类,实例化Farmer类并完成一系列工作。
按照设计,输出的应该是
“Fruit的构造函数
getName
plant:我是传进来的Child

Fruit的构造函数
getName
plant:我是传进来的Pear”
声明下:Fruit的构造函数 getName 这2个是我最初为了看程序执行的顺序的。

但问题就出在这里。
实际结果是:
“Fruit的构造函数
getName
plant:我是传进来的Child”

少输出了一个。
但是当我将当初的为了检验程序执行步骤的2条语句:
System.out.println("Fruit的构造函数");
System.out.println("getName");
删除其一,或者全部删除时结果是正常的。

Fruit的构造函数
plant:我是传进来的name
Fruit的构造函数
plant:我是传进来的Child”


请问下这是怎么了。 --------------------编程问答-------------------- Fruit的构造函数
getName
plant:我是传进来的name
Fruit的构造函数
getName
plant:我是传进来的Child

有什么问题 ? --------------------编程问答-------------------- 按设想是这样输出。但是只数出了
Fruit的构造函数
getName
plant:我是传进来的Child
补充:Java ,  Java相关
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,