What is Implicit constructors on Java

前端 未结 2 2039
囚心锁ツ
囚心锁ツ 2020-12-06 18:16

Is it mandatory to call base class constructor in Java? In C++ it was optional, so I am asking this.

When I extend ArrayAdapter, I get this error:

2条回答
  •  南笙
    南笙 (楼主)
    2020-12-06 18:39

    The no-args constructor is called implicitly if you don't call one yourself, which is invalid if that constructor doesn't exist. The reason it is required to call a super constructor is that the superclass usually has some state it expects to be in after being constructed, which may include private variables that can't be set in a sub-class. If you don't call the constructor, it would leave the object in a probably invalid state, which can cause all kinds of problems.

提交回复
热议问题