java - 找不到符号符号 : constructor A() location: class A

标签 java class object inheritance constructor

class A {
     A(int i){    
        System.out.println("A(int)");
     }
 }

class B1 extends A{
    public static void main(String args[]){
        A ob=new A(2);  
    }
}

最佳答案

你在 class A 中声明了一个 1-arg constructor。因此,编译器 不提供默认的 0-arg 构造函数

现在,在 B1 类 中,您还没有定义任何构造函数,所以编译器添加了一个默认 <该类中的 em>0-arg constructor,如下所示:-

public B1() {
    super();
}

如您所见,Compiler 添加了一个 super() 调用来调用 父类(super class)的 0-arg 构造函数 ,在本例中是 A 类

现在,由于您的 class A 没有任何 0-arg constructor,因此出现错误。


因此,要么您可以在类 A 中添加一个0-arg 构造函数:-

public A() {

}

这将解决问题。


或者,在您的 class B1 中显式添加一个 0-arg constructor,并添加一个 super() 调用 A 类 1-arg 构造函数:-

public B1() {
    super(0);  // Or any value
}

但是,第二个解决方案中的问题是,从您的 B1 类 中的每个构造函数,您必须调用 1-arg 构造函数 >A 类 显式。一旦遗漏一个,就会立即出现编译器错误。

因此,我建议使用第一个选项。在 class A 中添加一个 0-arg constructor。你们都很好。

关于java - 找不到符号符号 : constructor A() location: class A,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13541481/

相关文章:

java - Spring Boot : Transaction with two DB, 如果第二个数据库失败则回滚第一个数据库

java - 在java中创建可扩展枚举行为的最佳方法

c++ - 包含类文件后的错误消息(多个定义的符号)

javascript - 函数范围与 Javascript 对象中的代码顺序

java - gRPC 如何在客户端等待来自 StreamingServer 的 header

java - 理解java中的继承

C++ - 类成员函数中的数组值自发改变

javascript - JS : convert 2D object with keys to transposed csv

javascript - 根据单独的对象键、值过滤对象数组

java - 如何使用 like 和 % 进行 Hibernate 查询?