Avoid inherit when composition would be easier.
For instance I have seen a lot like this:
public class CustomerSupportApp extends JFrame {
JList<Customer> customers;
OtherBusinessComponent importantComponent;
etc. etc
}
This is mixing business logic with presentation. It only makes changes from difficult to impossible.
Better is:
public class CustomerSupportApp {
JList<Customer> customers;
OtherBusinessComponent importantComponent;
// The app HAS-A frame but not IS-A frame
JFrame frame;
etc. etc
}