新手求助。。。
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相关