今天被问到抽象类要不要有构造函数的时候, 我随口一答应该是没有的, 我以为, 抽象类是不能直接用new来被实例化的, 所以也就不需要再去写构造函数了;
随后查了一下明白:
抽象类也需要构造函数, 在大多数情况中抽象类往往是要被继承的, 在子类的构造函数中往往会调用父类的构造函数, 在这种情况下就需要父类(抽象类)来提供构造函数来调用super了, 当然如果没有提供的话就会调用默认的构造函数了- -
抽象类能否被实例化呢?
抽象类是不能以直接的方式去new来实例化的, 但是在子类中调用super的父类构造器的时候其实已经隐式地实例化出了一个抽象类的实例, 所以应该说抽象类也是可以被抽象化的;