What is the design pattern called when you use an interface as a middle class between the two classes, for exmaple SimplePluginManager implements PluginManager witch is an interface in spigot?
Polymorphism, if i understood you correctly. It is a core part of OOP. This is stuff you should definitely research before trying to use bukkit.