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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© huhanghao 中级黑马   /  2015-3-15 23:52  /  2138 人查看  /  20 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

class super
{
        int i = 0;
        public Super(String s)
        {
                i = 0;
        }
}
class Demo extends Super
{
        public Demo(String s)
        {
                i = 2;
        }
        public static void main(String[] args)
        {
                Demo d= new Demo("yes");
                System.out.println(d.i)

        }
}
为什么说编译会失败啊?

20 个回复

倒序浏览
本帖最后由 coolzhou9527 于 2015-3-15 23:56 编辑

父类中的class super,super是类名,要大写。。。
回复 使用道具 举报
coolzhou9527 发表于 2015-3-15 23:55
父类中的class super,super是类名,要大写。。。

改了,但是还是编译失败啊。。。真是不知道哪里错了
回复 使用道具 举报
huhanghao 发表于 2015-3-15 23:58
改了,但是还是编译失败啊。。。真是不知道哪里错了
  1. class Super
  2. {  
  3.         int i = 0;
  4.         public Super()
  5.         {
  6.                 i = 0;
  7.         }
  8. }
  9. class Demo extends Super
  10. {
  11.         public Demo()
  12.         {
  13.                 i = 2;
  14.         }
  15.         public static void main(String[] args)
  16.         {
  17.                 Demo d= new Demo();
  18.                 System.out.println(d.i);

  19.         }
  20. }
复制代码
回复 使用道具 举报
为什么将主函数放在子类当中???
  
回复 使用道具 举报
super是个关键字,你看看是不是改改类名,class super,而且第一个是小写,第二个是大写,语法错误,怎么继承?
回复 使用道具 举报
复制你更改后的代码,编译正常!至于主函数位置,那个只是提供一个程序入口而已,
回复 使用道具 举报
类名首字母不是大写么??驼峰原理啊
回复 使用道具 举报
Shey 中级黑马 2015-3-16 09:37:57
9#
看看你的文件名称和存放main函数的类的名称是否一样
回复 使用道具 举报
qsmaxmin 发表于 2015-3-16 08:57
类名首字母不是大写么??驼峰原理啊

好像驼峰是适用于函数名称、变量名称!
回复 使用道具 举报
public Super()
        {
                i = 0;
        }

这句话是什么意思? 默认构造函数不能加public修饰吧
回复 使用道具 举报
class Lei
{
        int i = 0;
        public Lei()
        {
                i = 0;
        }
}
class Demo extends Lei
{
        public Demo()
        {
                i = 2;
        }
        
}

class Text
{
        public static void main(String[] args)
        {
                Demo d= new Demo();
                System.out.println(d.i);

        }

}
把super改了。super应该是父类的引用 容易出错
然后父类跟子类中的方法为什么要传入字符?
创建对象好像不是这么创建的吧 括号里面的字符要去掉  Demo d= new Demo("yes");  改成 Demo d = Demo();  
主函数应该单独存放在另一个类中
还有最后一个  为啥 最后的输出语句没有用 ; 号结束?
懂了吧?  不喜勿喷!!!  我能看出来的  只有这么多了
回复 使用道具 举报
突然世界晴 发表于 2015-3-16 10:14
public Super()
        {
                i = 0;

可以的吧   就是记得不要加private就行了
回复 使用道具 举报
super不是关键字吗?
回复 使用道具 举报
最好确定文件名是Demo.java:)
回复 使用道具 举报
One_M 中级黑马 2015-3-16 12:48:58
16#
应该还是要确认保存名称是否有问题吧,主函数只是提供一个入口应该位置在哪问题不大~!
回复 使用道具 举报
你得在父类中,添加一个无参的构造参数。因为子类中的构造函数隐式的调用了父类的无参的构造函数。楼上的几位,将String  s 去掉了就是这个原因
回复 使用道具 举报
class Super//首字母大写。这个是关键字。最好是在加个有意义单词或者是换个有意义的单词
{
         int i = 0;
         public  Super()//String s 这个是要表达什么??
         {
                i = 0;
         }
                 
}
class Demo extends Super
{
         public Demo()
         {
                 i = 2;
         }
         public static void main(String[] args)
        {
                 Demo d= new Demo();//这个YES是什么意思?
                 System.out.println(d.i);

        }
}
回复 使用道具 举报
你看上面的类名和构造函数名不一致,而且,后面的子函数继承的Super类名第一个字母是大写的,这就说明,你得把super改为Super
回复 使用道具 举报
wenke 中级黑马 2015-3-16 15:19:31
20#
Demo子类必须调用父类的构造函数  不然出错  Demo类构造函数改成
public Demo(String s) {
        super("love");
        i=2;
}
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马