Java 从子类的main方法创建父实例
我尝试在子类的main方法中创建父实例。它显示了一个错误:“类A中的构造函数A不能应用于给定的类型”。请告诉我为什么我的代码不起作用。谢谢Java 从子类的main方法创建父实例,java,inheritance,subclass,Java,Inheritance,Subclass,我尝试在子类的main方法中创建父实例。它显示了一个错误:“类A中的构造函数A不能应用于给定的类型”。请告诉我为什么我的代码不起作用。谢谢 class A { protected int a; A(int a) { this.a = a; } } class Test extends A { public static void main(String[] args) { int a = 10; A instanc
class A
{
protected int a;
A(int a) {
this.a = a;
}
}
class Test extends A
{
public static void main(String[] args) {
int a = 10;
A instance = new A(a);
}
}
问题不在这里
A instance = new A(a);
问题是,由于您在测试中没有定义任何构造函数,编译器应该提供以下形式之一:
Test() {
super();
}
但它不能,因为超类(A)没有任何默认构造函数。因此,您需要明确地提供一个构造函数:
Test() {
super(0);
}
或
例如。您的行没有问题
A实例=新的A(A)代码>这不是编译错误的来源
在类A中,您定义了一个构造函数A(int A)
,它阻止自动生成默认(无参数)构造函数
出现编译错误的原因是,您正在使用扩展一个类,测试扩展了一个,而没有调用超类的构造函数。它正在寻找类a的默认构造函数
Test(int i) {
super(i);
}