There are different technology choices to create frontend plugins in TYPO3.
For pure output it is often sufficient to use a FLUIDTEMPLATE in combination with DataProcessors. See also Creating a custom content element.
For scenarios with user input and or complicated data operations consider using Extbase.
Legacy frontend plugins without Extbase, so called "pi-based plugins" are based on the AbstractPlugin. It is not recommended anymore to use the AbstractPlugin as base for new frontend plugins. The Core does not use it anymore and only few third party extensions still use it.