class Cycle{
private String name = "cycle";
public static void travel(Cycle c){
System.out.println("cycle.ride()"+c);
}
  public String toString(){
return this.name;
}}
class Unicycle extends Cycle{
private String name =" Unicycle";
public String toString(){
return this.name; 
}
}
class Bicycle extends Cycle{
private String name = "Bicycle";
public String toString(){
return this.name;
}
}
class Tricycle extends Cycle{
      private String name = "Triclcle";
public String toString(){
return this.name;
}
}public class TestP{
public static void ride(Cycle c){
c.travel(c);
}
  public static void main(String[] args){
Unicycle u = new Unicycle();
Bicycle b = new Bicycle();
Tricycle t = new Tricycle();
ride(u);
ride(b);
ride(t);   
}
}

解决方案 »

  1.   

    代码意思是三个子类实例分别调用父类的静态方法travel,而travel方法中又会调用具体每个参数实例的toString方法
      

  2.   

    在eclipse 单步执行,吗,我还没用eclipse 。我试试
      

  3.   

    “不知道这个程序的执行过程”
    你一步步的Debug ,调试的F5 , F6 有区别的,自己试下就知道了,执行流程完全可以自己测试啊。
      

  4.   

    你好像不会debug, 开发 很常用的。。
    请教下你老师或身边的人吧, 熟悉eclipse操作的都知道。
      

  5.   

    其实这个程序  蛮简单的首先main 开始往下走实例化三个对象 u,b,t实例化的同时就进入属于自己的那个类。。然后调用自己的ride 方法ride(u)后就跳到
    public static void ride(Cycle c){
    c.travel(c);
    }
    又因为 u 继承 了Cycle
    所以travel方法是来自于父类Cycle里面的。。所以执行完
    public static void ride(Cycle c){
    c.travel(c);
    }
    就跳到
    public static void travel(Cycle c){
    System.out.println("cycle.ride()"+c);
    }
    输出的应该是cycle.ride()Unicycle;
    后面两个是一样的。
      

  6.   

    改正一下:然后调用自己的ride 方法应该是运行完属于自己的那个类后  回到main 中 继续往下走。。执行ride()方法。。
      

  7.   

    首先main 开始往下走实例化三个对象 u,b,t实例化的同时就进入属于自己的那个类。。然后调用自己的ride 方法ride(u)后就跳到
    public static void ride(Cycle c){
    c.travel(c);
    }
    又因为 u 继承 了Cycle
    所以travel方法是来自于父类Cycle里面的。。所以执行完
    public static void ride(Cycle c){
    c.travel(c);
    }
    就跳到
    public static void travel(Cycle c){
    System.out.println("cycle.ride()"+c);
    }
    输出的应该是cycle.ride()Unicycle;
    后面两个是一样的。