//定义Animal类
package Ani;
public class Animal {
private String type;
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public Animal(String aType)
{
type=aType;
}
public String ToString()
{
return "This is a"+type;
}
}//Dog类派生于Animal
package Ani;
public class Dog extends Animal {
private String name;
private String breed; public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public String getBreed() {
return breed;
} public void setBreed(String breed) {
this.breed = breed;
} public Dog(String aName) {
super("Dog");
name = aName;
breed = "Unknow";
} public Dog(String aName, String aBreed) {
super("Dog");
name = aName;
breed = aBreed;
}
}//主函数
package Ani;
public class TestApp { /**
* @param args
*/
public static void main(String[] args) {
Dog aDog=new Dog("111","aaa");
Dog bDog=new Dog("222","bbb");
System.out.println(aDog);
System.out.println(bDog);
}
}为什么输出不是Animal中定义的ToString类
而是 Ani.Dog@1fb8ee3
Ani.Dog@61de33坐等高人、在此谢过!~
package Ani;
public class Animal {
private String type;
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public Animal(String aType)
{
type=aType;
}
public String ToString()
{
return "This is a"+type;
}
}//Dog类派生于Animal
package Ani;
public class Dog extends Animal {
private String name;
private String breed; public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public String getBreed() {
return breed;
} public void setBreed(String breed) {
this.breed = breed;
} public Dog(String aName) {
super("Dog");
name = aName;
breed = "Unknow";
} public Dog(String aName, String aBreed) {
super("Dog");
name = aName;
breed = aBreed;
}
}//主函数
package Ani;
public class TestApp { /**
* @param args
*/
public static void main(String[] args) {
Dog aDog=new Dog("111","aaa");
Dog bDog=new Dog("222","bbb");
System.out.println(aDog);
System.out.println(bDog);
}
}为什么输出不是Animal中定义的ToString类
而是 Ani.Dog@1fb8ee3
Ani.Dog@61de33坐等高人、在此谢过!~
System.out.println(bDog.ToString());
public String toString()
{
return "This is a"+type;
}
System.out.println(bDog.ToString());
==========
这样显示的是:
This a dog
This a dog
2、Ani.Dog@1fb8ee3、Ani.Dog@61de33,是地址
3、注释很不明确不知道你要显示成什么样子的,暂且不说重写
System.out.println(bDog);
应该是输出的是对象的字符串表示。参考API--java.lang.object.toString()
------------
toString
public String toString()返回该对象的字符串表示。通常,toString 方法会返回一个“以文本方式表示”此对象的字符串。结果应是一个简明但易于读懂的信息表达式。建议所有子类都重写此方法。
Object 类的 toString 方法返回一个字符串,该字符串由类名(对象是该类的一个实例)、at 标记符“@”和此对象哈希码的无符号十六进制表示组成。换句话说,该方法返回一个字符串,它的值等于: getClass().getName() + '@' + Integer.toHexString(hashCode())
返回:
该对象的字符串表示形式。----------
或者在Dog类中重载,或者改成:
System.out.println(aDog.ToString());
System.out.println(bDog.ToString());
重写函数的方法 最好先看一下API文档
高手都说了方法名错了,
但是我不明白你这程序那么多public class 怎么可以呢。