Java inheritance: How to achieve something similar to "multiple inheritance" when it is not allowed in Java?

inheritance, java, swing

Solution

I don't see why you need multiple inheritance. As far as I can tell you should be fine with a an abstract base class that implements the common methods:

public abstract class AbstractFilePanel extends JPanel
{
    public void commonMethod1() {}
}

public class FileSub1 extends AbstractFilePanel 
{
    public void sub1Method() {}
}

public class FileSub2 extends AbstractFilePanel 
{
    public void sub2Method() {}
}

Problem

This is a question mostly about Java inheritance. I am developing a program which has 2 windows, both of which will be developed in separate classes which will extend JPanel. The first class is "FileSub1" and the second one is "FileSub2". There are a lot of methods that are common to these two classes, so I would like to create a class called "Files" and make "FileSub1" and "FileSub2" its subclasses. But Java doesn't support multiple inheritance! What can I do here?

Original source

Related problems