2014-10-11 115 views
1

的要求是:继承问题,为什么不能打印正确的结果?

创建一个名为Hop的公共类的文件Hop.java。 创建另外两个类:跳过Hop的子类并跳转Skip的子类。 在三个类中的每一个中创建一个无参数的构造函数,该构造函数自己在一行上打印类的名称(例如,使用System.out.println(“Hop”)打印“Hop”类名称。 Create一个主要的方法(在哪里?)并创建一个跳转的新实例 编译并运行,你应该看到输出Hop,Skip,和Jump打印到标准输出,你能解释一下吗?到目前为止是:

public class Hop { 
    private String name; 
    public Hop(String name) { 
     this.name = name; 
    } 
    public static void main(String args[]) { 
     Jump j = new Jump("Hop", "Skip", "Jump"); 
     System.out.println(j); 

    } 
} 
class Skip extends Hop { 
    private String name1; 
    public Skip(String name, String name1) { 
     super(name); 
     this.name1 = name1; 
    } 

} 
class Jump extends Skip { 
    private String name2; 
    public Jump(String name, String name1, String name2) { 
     super(name, name1); 

     this.name2 = name2; 
    } 

} 
+1

看看你的构造函数 - 它们每个都有参数,它们不会打印任何东西。没有什么说你应该打印出新创建的实例。基本上,您需要更仔细地阅读说明。 – 2014-10-11 20:36:36

+3

*“在三个类中的每一个中创建一个无参数构造函数,这些构造函数自己在一行上打印类的名称(例如,使用System.out.println(”Hop“)打印”Hop“类名) “*表示你没有按照提供的说明 – MadProgrammer 2014-10-11 20:37:58

回答

2

这是什么的问题是问你做: (这个问题的目的是要证明所有超类构造函数意蕴当创建子类的实例时,它(递归地)调用。)

public class Hop { 
    public Hop() { 
     System.out.println("Hop"); 
    } 
    public static void main(String args[]) { 
     Jump j = new Jump();  

    } 
} 
class Skip extends Hop { 
    public Skip() { 
     System.out.println("Skip "); 
    } 

} 
class Jump extends Skip { 
    public Jump() { 
     System.out.println("Jump "); 
    } 
} 

仔细阅读问题。按照说明操作。试着去思考这个问题是什么意思。

+0

非常感谢,我想我知道我的代码在哪里错了! – post5858 2014-10-12 21:56:19

相关问题