2017-09-15 60 views
0

即时通讯一个noobie和即时通讯试图了解特定的输出即时通讯。 我使用Eclipse火星释放4.5重复输出一个子类的两个对象

所以我有如下代码:

public class SuperClass{ 

    protected String query; 

    public SuperClass(){} 

    public SuperClass(String query) 
    { 
     this.query=query; 
     System.out.println("Super Class"); 
    } 

    public String toString() 
    { 
     return query="value"; 
    } 
} 

和前次类的以下子类:

public class SubClass extends SuperClass 
{ 
    public SubClass() 
    { 
     System.out.println("Sub Class"); 
    } 

} 

现在,当我尝试初始化两个不同子类的对象我得到一个混淆输出,如下:

public class Main 

{

public static void main (String[] args) 
{ 
    SubClass test1=new SubClass(); 
    SubClass test2=new SubClass(); 

    System.out.println(test1); 
} 
} 

**Output:** 
    Sub Class 
    Sub Class 
    value 

什么是困惑我的是,即使我只打印对象“测试1”,即时得到重复的输出,如果我打印两个对象的。

任何帮助?

+1

你觉得'System.out.println(“Sub Class”);'是做什么的?你认为'新的SubClass();'做了什么? –

+0

System.out.println(“Sub Class”);打印字符串Sub Class和新的SubClass();创建子类的新对象 – Dude2207

+1

当你实例化一个类时会发生什么?什么被称为? –

回答

0

这是因为您在子类构造函数中打印“子类”。

System.out.println(“Sub Class”);

相关问题