As a general implementation guidelines of LWC, we should be extending standard LWC elements. Examples are:
export default class MyComponent extends LightningElement
(Most used)
export default class MyComponent extends NavigationMixin(LightningElement)
export default class MyComponent extends LightningDatatable
(for using custom components in datatable.)
Refer HERE
Now, the question is when exactly should I extend other custom components? Something like
export default class MyComponent extends MyOtherComponent
And what are the considerations I should have while extending other custom components?