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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

class ExtendsDemo2 {
        public static void main(String[] args) {
                //Zi z = new Zi();
                Zi z1 = new Zi("zhangsan",23);
        }
}
class Fu {
        String name;
        int age;
        public void Fu(String name,int age) {
                this.name = name;
                this.age = age;
                System.out.println("aaaa");
        }
}
class Zi extends Fu {
        public void Zi(String name,int age) {
                this.name = name;
                this.age = age;
                System.out.println("bbbb");
        }
}

评分

参与人数 1技术分 +1 收起 理由
黄炳期 + 1

查看全部评分

9 个回复

倒序浏览
构造器是没有返回值的。。。。
回复 使用道具 举报
把两个类的构造函数前的void去掉
回复 使用道具 举报
你犯了两种错误:
1,构造函数没有返回值
回复 使用道具 举报
你犯了两种错误:
1,构造函数没有返回值,你却给它加了返回值
   改正方法:去掉Fu和Zi前面的viod

2,你定义的Fu(String name,int age){}这个构造方法把JVM默认的无参构造方法Fu(){ }给覆盖掉了
   JVM默认子类的构造方法在调用父类的无参构造方法,由于父类无参构造被覆盖造成错误,这个个问题解决方法有两个:
    <1>改父类,把父类的无参构造明确写出来,这样就不会被覆盖掉了;如下:
     class Fu {
        String name;
        int age;

        Fu() {
        }

        public Fu(String name, int age) {
                this.name = name;
                this.age = age;
                System.out.println("aaaa");
        }
}

      <2>改子类,在子类中明确写出调用父类的带参数的构造方法,如下:
     class Zi extends Fu {
        public Zi(String name, int age) {
                 super(name,age);

                System.out.println("bbbb");
        }
}
第二种方法明显比第一种要好的多,完整的代码如下:
public class ExtendsDemo2 {
        public static void main(String[] args) {
                // Zi z = new Zi();
                Zi z1 = new Zi("zhangsan", 23);
        }
}

class Fu {
        String name;
        int age;

        Fu() {
        }

        public Fu(String name, int age) {
                this.name = name;
                this.age = age;
                System.out.println("aaaa");
        }
}

class Zi extends Fu {
        public Zi(String name, int age) {
                 super(name,age);

                System.out.println("bbbb");
        }
}

评分

参与人数 1技术分 +1 收起 理由
黄炳期 + 1

查看全部评分

回复 使用道具 举报
不需要定义void返回值
回复 使用道具 举报
请看我的注解:
  1. class Test {
  2.         public static void main(String[] args) {
  3.                 // Zi z = new Zi();
  4.                 Zi z1 = new Zi("zhangsan", 23);
  5.         }
  6. }

  7. class Fu {
  8.        
  9.         String name;
  10.         int age;

  11.         //构造函数我们一般不用public和private修饰,也不定义返回值。
  12.         //当我们在这个类之外不想让其他类创建本类对象时,我们将构造函数私有化(用private修饰),
  13.         Fu(String name, int age) {
  14.                 this.name = name;
  15.                 this.age = age;
  16.                 System.out.println("aaaa");
  17.         }
  18. }

  19. class Zi extends Fu {
  20.        
  21.         //存在继承关系时我们可以用super关键字直接调用父类的相关参数的构造函数,当然现在这个父类只有一个构造函数
  22.         //那我们就只能调用父类的这个Fu(String name, int age)构造函数了
  23.         Zi(String name, int age) {
  24.                 super(name,age);
  25.                 System.out.println("bbbb");
  26.         }
  27. }
复制代码
回复 使用道具 举报
剑魂 中级黑马 2013-11-5 23:10:04
8#

  1. class ExtendsDemo2 {
  2.         public static void main(String[] args) {
  3.                 //Zi z = new Zi();
  4.                 Zi z1 = new Zi("zhangsan",23);
  5.         }
  6. }
  7. class Fu {
  8.         String name;
  9.         int age;
  10.                 //改正:构造函数没有返回值,方法名与类名相同,不被子类继承
  11.         public  Fu(String name,int age) {
  12.                 this.name = name;
  13.                 this.age = age;
  14.                 System.out.println("aaaa");
  15.         }
  16. }
  17. class Zi extends Fu {
  18.                 //改正:同上
  19.         public Zi(String name,int age) {
  20.                         //改正:父类没有空参的构造函数时,这时必须调用父类含参的构造函数,父类才能初始化
  21.                             super(name,age);//super语句必须放在第一行
  22.                 //this.name = name;
  23.                 //this.age = age;
  24.                 System.out.println("bbbb");
  25.         }
  26. }
复制代码
回复 使用道具 举报
一句话:
                 构造函数没有返回值类型。
回复 使用道具 举报
一个小问题,有那么多人给你解答,希望你成为大牛后,也能回来帮助新人
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马