You have to override
the toString()
method in your classes which you are printing.
Right now it's printing the default implementation of Object
class toString()
method.
From Object class Source code
Returns a string representation of the object. In general, the toString method returns a string that "textually represents" this object. The result should be a concise but informative representation that is easy for a person to read. It is recommended that all subclasses override this method.
The toString method for class Object returns a string consisting of the name of the class of which the object is an instance, the at-sign character `@', and the unsigned hexadecimal representation of the hash code of the object. In other words, this method returns a string equal to the value of:
getClass().getName() + '@' + Integer.toHexString(hashCode())
Returns:
a string representation of the object.
public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}
So in your Demo class Ovveride toString()
method to get desired O/P.
public class Demo{
----
@Override
public String toString() {
//return something
}
}