子类继承父类时JVM报出Error:Implicit super constructor People() is undefined for default constructor. Must define an explicit constructor

当子类继承父类的时候,若父类没有定义带参的构造方法,则子类可以继承父类的默认构造方法

当父类中定义了带参的构造方法,子类必须显式的调用父类的构造方法

若此时,子类还想调用父类的默认构造方法,必须在父类中明确声明默认的构造方法

 1 package com.gaohui;
 2 
 3 public class Test {
 4     public static void main(String [] args){
 5         Man man = new Man(24,"Tom");
 6         man.eat();
 7         man.eat("Tom");
 8         man.Exercise();
 9         Woman woman = new Woman();
10         
11     }
12     
13 }
14 
15 class People{
16     private int age;
17     private String name;
18     private String sex;
19     
20     public People(){
21         //如果父类没有声明默认的构造方法,子类继承时必须显式调用父类定义的构造方法
22     }
23     
24     public People(int age, String name){
25         System.out.println("构造方法一执行了!");
26     }
27     
28     public void eat(){
29         System.out.println("People need to eat!");
30     }
31     
32     public void eat(String name){
33         System.out.println(name+" needs to eat!");
34     }
35     
36     
37 }
38 
39 class Man extends People{
40     public  Man (int age, String name){//由于父类的构造方法是有参的,必须显式调用父类的方法
41         super(age,name);
42     }
43     
44     public void Exercise(){
45         System.out.println("I love doing exercise!");
46     }
47 }
48 
49 
50 class Woman extends People{
51     
52 }

 

posted @ 2016-12-31 14:34  一只敲码的猫  阅读(590)  评论(0编辑  收藏  举报