代码如下:
package MyTankGame;
import java.awt.*;
import javax.swing.*;
public class MyTankGame extends JFrame{
/**
 * @param args
 */
public static void main(String[] args) {
// TODO Auto-generated method stub
}
}
class Tank
{
int x=0;
int y=0;
public Tank(int x,int y)
{
this.x=x;
this.y=y;
}
}
class Hero extends Tank
{
}
报错如下:
Implicit super constructor Tank() is undefined for default constructor. Must define an explicit constructor
为啥我继承就报错啊?一定要实现Hero的构造方法呢?菜鸟求救
        ​3Q!

解决方案 »

  1.   


    说的没错, 你继承Jframe, jframe是没有误差构造函数的,所以你的程序会报错
      

  2.   

    http://topic.csdn.net/u/20120804/19/90e75aff-1b61-4ed5-a870-a0d8874a2fb8.html
      

  3.   

    Must define an explicit constructor必须定义一个显示的构造器。
    必须的英文还是得掌握的。
      

  4.   

    import java.awt.*;
    //import javax.swing.*;public class MyTankGame{
    public static void main(String[] args) {
    new Tank();
      }
    }
    class Tank  extends Frame{
    Tank(){
    super();
    }

    }
    class Hero extends Tank{}

      

  5.   


    package MyTankGame;
    import java.awt.*;
    import javax.swing.*;public class MyTankGame extends JFrame {
    /**
     * @param args
     */
    public static void main(String[] args) {
    // TODO Auto-generated method stub
    }
    }class Tank {
    int x = 0;
    int y = 0; public Tank(int x, int y) {
    this.x = x;
    this.y = y;
    }
    }class Hero extends Tank {
    public Hero(int x, int y) {
    super(x, y);
    }
    }Hero 这个类需要一个显式的构造函数。
    你只需在Hero类里加上, public Hero(int x, int y) {
    super(x, y);
    }这个构造函数即可编译通过。
      

  6.   

    在父类加个无参的构造器
    或者在子类里调用一下super();
      

  7.   

    主要是在父类Tank中定义了一个构造方法(不管是否有参)后系统就不会再默认给你创建无参构造方法了,
    余下的就是楼上各位说的那样了!