代码如下:
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!
说的没错, 你继承Jframe, jframe是没有误差构造函数的,所以你的程序会报错
必须的英文还是得掌握的。
//import javax.swing.*;public class MyTankGame{
public static void main(String[] args) {
new Tank();
}
}
class Tank extends Frame{
Tank(){
super();
}
}
class Hero extends Tank{}
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);
}这个构造函数即可编译通过。
或者在子类里调用一下super();
余下的就是楼上各位说的那样了!