Java继承

来源:百度知道 编辑:UC知道 时间:2024/05/31 17:56:37
class Test
{
Test()
{
System.out.println("空的构造方法");
}
Test(int i,int j)
{
System.out.println("有参的构造方法");
}
}
class jisuan extends Test
{
public static void main(String[] args)
{
jisuan a=new jisuan(1,2);
}
}
为什么调用父类有参的构造函数会出错!

父类的构造函数子类不能继承,但是可以被调用
你子类没有定义构造函数,所以系统默认会有个
jisuan()的构造函数
你调用这个jisuan构造函数的同时会调用父类Test()

如果你要调用父类的构造函数。。必须这么写

jisuan(int i,int j){
super(i,j);
}

类jisuan没有jisuan(int, int)型的构造函数。
两个方法可以消除这个语法错误:
一个是在class jisuan添加构造函数:
jisuan(int a, int b){
super(a, b);
}
另一个是修改main函数:
public static void main(String[] args)
{
jisuan a = new jisuan();
}

看来你对继承完全还不知道是怎么回事.有一点要分清,构造函数和普遍方法的继承是两个不同的东西.

在jisuan 类中有隐式的public jisuan (){super()};

应该为:
public jisuan (int i,int j){
super(i,j);
}

你写了自己的构造方法,那么编译器不会给你默认的了.这个可以google

1楼正解!