如果父类没有无参构造方法,而子类构造方法又没有显式调用父类的构造方法,那么编译器会报错
时间: 2024-06-20 15:02:55 浏览: 239
当父类没有无参构造方法时,子类的构造方法必须显式地调用父类的构造方法,并且必须在子类构造方法的第一行调用,否则编译器会报错。这是因为在创建子类对象时,需要先创建父类对象,如果没有显式调用父类的构造方法,编译器也会尝试去调用一个默认的无参构造方法,但是由于父类没有提供无参构造方法,因此会导致编译错误。
如果你在子类的构造方法中没有显式调用父类的构造方法,并且父类又没有无参构造方法,那么编译器就会报错。因此,在这种情况下,你需要在子类的构造方法中显式地调用父类的有参构造方法,以确保正确创建父类和子类的对象。
相关问题
下列描述中正确的是()。 选择一项: a. 子类不能继承父类的构造方法。 正确 b. 如果在子类的构造方法中,没有显式的写出super关键词来调用父类的某个构造方法,那么编译器默认的调用父类无参的构造方法super();如果父类没有无参的构造方法,系统会调用第一个带参数的构造方法创建对象。 c. 可以使用final修饰构造方法 d. 子类中想使用被子类隐藏的实例成员变量或实例方法,就需要使用关键词this
b. 如果在子类的构造方法中,没有显式的写出super关键词来调用父类的某个构造方法,那么编译器默认的调用父类无参的构造方法super();如果父类没有无参的构造方法,系统会调用第一个带参数的构造方法创建对象。 是正确的描述。 其他选项错误。子类可以继承父类的构造方法;构造方法不能被final修饰;this关键字用于指代当前对象的实例成员变量或实例方法,与被隐藏的父类的实例成员变量或实例方法无关。
如果在子类的构造方法中,没有显示地写出super关键字来调用父类的某个构造方法,那么编译器默认地有: superO;调用父类的无参数的构造方法,如果父类没有这样的构造方法,代码将出现编译错误。
是的,如果在子类的构造方法中没有显式地调用父类的构造方法,编译器会默认在子类的构造方法的第一行插入一个隐式的super()语句,调用父类的无参构造方法。如果父类中没有无参构造方法,而子类中没有显式地调用父类的其他构造方法,则编译器会报错。因此,在子类中,如果需要调用父类的有参构造方法,就必须显式地使用super关键字来调用。
阅读全文