A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

[mw_shl_code=java,true]public class Test2 {

        public static void main(String[] args) {
                People a = new American("Jonny");
                People b = new Chinese("李小龙");
                People c = new Chinese("成龙");
                People[] p = new People[]{a,b,c};

                for (People people : p) {
                        System.out.println(p);
                }

        }
}
class People{
        private String name;
        public People(String name) {
                super();
                this.name = name;
        }
       
        public String getName() {
                return name;
        }

        public String speak(){
                return "说话";
        }

        @Override
        public String toString() {
               
                return "不知道哪里人";
        }
       


       
}

class Chinese extends People{

        public Chinese(String name) {
                super(name);
               
        }

        @Override
        public String speak() {
               
                return "我说中国话";
        }

        @Override
        public String toString() {
               
                return "我叫"+getName()+"我来自中国";
        }
       
       
}

class American extends People{

        public American(String name) {
                super(name);
               
        }

        @Override
        public String speak() {
               
                return "I'm speak English";
        }

        @Override
        public String toString() {
               
                return "My name is "+getName()+",I'm from American";
        }
       
}[/mw_shl_code]

如上所示,输出结果是:
[Lcom.exam.zsq.People;@15db9742
[Lcom.exam.zsq.People;@15db9742
[Lcom.exam.zsq.People;@15db9742

请问我重写的toString方法为什么不生效?

9 个回复

倒序浏览
输出people
回复 使用道具 举报
for (People people : p) {
            System.out.println(p);   //要输出people
        }
回复 使用道具 举报
你输出的是数组,而不是当前对象
回复 使用道具 举报
路过              
回复 使用道具 举报
aA772807986 发表于 2016-11-22 22:17
你输出的是数组,而不是当前对象

懂了懂了,谢谢
回复 使用道具 举报
goog123 发表于 2016-11-22 21:47
for (People people : p) {
            System.out.println(p);   //要输出people
        }

明白啦,谢谢大神
回复 使用道具 举报
乌托邦619 发表于 2016-11-22 20:51
输出people

明白啦,自己搞混了。谢谢
回复 使用道具 举报
一楼说的很对,代码对敲敲
回复 使用道具 举报
方法重写的注意事项,返回值类型相同或者有子父类关系
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马