a base class is used for inheritance. Modern design practice is to avoid having a very deep inheritance tree, that is more than a base class and an inherited class. the main use case is a library class that allow user extension. as changes to the super classes can break an inherited class, this technique is considered fragile.
partial classes allow the class definition to be split into multiple files. the main use case, is customizing auto generated code. the autogenerated code can be regenerated without deleting the custom code.
interface design or composition is often preferred over inheritance.
also you can use extension methods to extend a class.