That's the way how OO works. In your example, because of inheritance, you declare that Resistance is also an Element, only a special kind of it.
It makes no sense to construct a child class without constructing the base; it would leave base in an inconsistent (or rather uninitialized) state.
Declare Element()
as protected, to avoid instantiation of the base class, just as you did it in your example.