Question: well,
I am currently developing an application which uses JFrame and Applet.

Why we can't extend both..

```
public class myClass extends Applet, javax.swing.JFrame {...}
//invalid...

```

The valid code is.

```
public class myClass extends Applet {
    javax.swing.JFrame frame = new javax.swing.JFrame();
    public void init(){
        frame.setSize(300, 400);
        frame.setVisible(true);
    }
}

```

Why so?
Why we can't extends more than one class

Answer: 
The designers of Java learned from the mistakes made in other languages such as C++ where the [`diamond problem`](http://www.programmerinterview.com/index.php/c-cplusplus/diamond-problem/) was an issue caused by multiple inheritance so decided to make Java a single inheritance language to simplify development.
When a class is abstract or extended, you are specifying the role that the class plays. This also helps to prevent looping inheritence.

An interface is merely a contract that you will have provided method functionality in your class. If you want to inherit from multiple sources that don't specify the role of the class, use an interface.