On Wednesday, 4 April 2018 at 21:49:08 UTC, Timoses wrote:
"[...] the construction of the base class can be independent from the derived one."

Hm, the points 7 and 8 don't clearly state what you wrote.

Yes :)

But it somehow does make sense.. Still I wonder why that is so.

Let's say you have an abstract class with immutable members. Why shouldn't derived class constructors be allowed to initialize these immutable members?

My reason is a semantic one, so it's rather how I'm explaining this to me, then a formal one.

Let's assume, we abstract away a member from different derived classes to an abstract class, which cannot be handled by this abstract class. Ok, this can happen, so it would be ok, if the base class does not handle the var.

But then, we add a qualifier. How can this be? As the abstract class cannot handle the abstraction, it also can not add any qualifiers. As the qualifier is there, then, the base class at least has knowledge about the immutability. And due this fact, its own constructor has to handle this variable in some way.

However, this a minor problem, isn't it? If you argue, that you can also abstract the immutability qualifier, then, I would say, that a derived class always has a better knowledge how to handle its members, and therefore how to call the base class constructor, as it knows which class it is derived from.

So, for short:
Either: the immutability belongs to the base class and therefore it has to manage the var Or: it doesn't and the derived classes have the knowledge how to serve their base class.

Reply via email to