Inheritance or DI in Presenter classes in MVP
I would prefer the first one with constructor parameters primarily because of two reasons.

First, it's easier to test, you are able to pass mocked or dummy services directly to the constructor.


  Good design is testable, and design that isn't testable is bad.


(Source Michael C. Feathers: Working Effectively with Legacy Code)

The second reason is that it seems to me that the second snippet abuses inheritance. I don't see any reason why anyone would declare their variables with BasePresenter type (so it's useless) and using a base class only for sharing two lines of code also smells.

The third reasons is that the second version is harder to read, readers have to go back and forth to the parent class if they find an usage of dataService or permissionService and want to figure out what it is.