关于覆盖和返回的一点疑问

public class TbShangpininfo {
private String spmc;
public String getSpmc(){
    return spmc;
}   
public String toString() {
    return getSpmc();
}

}

TbShangpininfo类重写了toString()方法,
JComboBox sp=new JComboBox();
TbShangpininfo info=new TbShangpininfo();

info.setSpmc(res.getString("spmc"));
sp.addItem(info);

我想问的是对象info加到sp后是怎么变成字符串的,把toString()中的return语句详细讲解下

有一个重载形式是addItem(object),里面调用了toString
info.setSpmc你可能忘了写了应该是
void setSpmc(String s)
{
spmc = s;
}
那么info.setSpmc(res.getString("spmc"));就将资源中的spmc放入了info的spmc成员。
而addItem调用了toString,toString调用了getSpmc,getSpmc返回了spmc,toString返回了getSpmc返回的spmc
public String toString() {
return getSpmc();
}
其实就是
public String toString() {
String result = getSpmc();
return result;
}

addItem之后,当显示该下拉列表的时候会根据加入的对象类型进行初始化,此时需要根据加入的内容调取toString方法。