As seen on the line, _votingPeriod is private. This is due to the encapsulation pattern so child contracts wouldn't have direct access to it to not allow improper/dangerous overwrite on it.
Though, votingDelay function is virtual, so In case change is needed, I can still override and achieve the same thing. What's your argument about having it like this and not making _votingPeriod variable internal ?