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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 李哲 中级黑马   /  2012-3-27 16:14  /  1681 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

class Demo //extends Object   我本来觉得因为任何类都是object的子类,所以没必要继承,因为默认是继承的啊。但是我把//加上,就会出错。去掉就编译通过。还是别的方面的原因呢?
{
        private int num;
        Demo(int num)
        {
                this.num=num;
        }
       
        public boolean equals(Object obj)
        {
                if(!(obj instanceof Demo))
                        return false;
                Demo d=(Demo)obj;
                return this.num==d.num;
        }
        public String toString()
        {
                return "demo:"+num;
        }
}
class  ObjectDemo1
{
        public static void main(String[] args)
        {
                Demo d1=new Demo(4);
        }
}

8 个回复

倒序浏览
你弄错了吧,你的代码是可以编译通过的
回复 使用道具 举报
你可以翻下Object类的源代码 里面没有无参构造函数的 这个可以确定的
Demo(int num)
        {
                //super();如果写名继承 必须要调用这个 所以就会出错
                this.num=num;
        }
回复 使用道具 举报
厄,有啥可能,你是不是把//去掉时,忘了在文字前加上//,即//我本来觉得因为任何类都是object的子类,所以没必要继承,因为默认是继承的啊。但是我把//加上,就会出错。去掉就编译通过。还是别的方面的原因呢?,没加就会提示有非法字符,不然不可能编译不通过吧
回复 使用道具 举报
没有错误啊,我编译跟运行都通过了,而且是没有继承Object类的。你再看看,是不是你没保存,然后直接运行了呢
回复 使用道具 举报
首先说一下object:
object类是所有java类的根基类 如果在类的声明中未使用extends关键字指明其父类,则默认类为object类  所以你这里加不加注释都是一样的。
比如:
public class Person{
        ...
}
等价于

public class Person extends Object{
        ...
}
对于toString的用法:
toString 是Object类的一个实例方法,其返回值是String 类型,描述当前对象的有关信息.
我运行了 你这个程序是没有错误的。所以你检查下是不是工具的问题。
你这个程序有些地方要注意:在java源文件中可以包含多个class文件,但是这些class文件只能有一个是public类型的,并且main函数,也就是程序的入口处,必须在public类型的程序中。
你重写了toString()所以建议打印下d的值,结果:demo:4
希望对你有帮助
回复 使用道具 举报
李哲 中级黑马 2012-3-27 18:18:58
7#
我可能是哪出什么问题,后来编译通过。谢谢大家!
回复 使用道具 举报
编译通过,没什么问题,你可能是编译的类名写错了。应该文件名写成:ObjectDemo1,编译的时候应该便以这个类。

回复 使用道具 举报
怎么都没有错误,输出都是Demo文件里的信息,你是不是没有Demo这个文件啊
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马