Mungkin inheritance di Java agak anti-mainstream artinya beda dari teknologi pesaingnya seperti .NET, PHP dan lain-lain, yang menerapkan single extends. Seperti di konsep sebelumya yaitu seperti berikut:

Single extends

Sedangkan untuk multiple extends di Java digantikan dengan sistem interface atau lebih dikenal dengan abstract class. Kalau digambarkan jadi seperti berikut:

Multiple extends

Di Java tidak mengenal multiple inherintace dalam class sebagai gantinya menggunakan sebuah interface seperti berikut contohnya:

Engine

1
2
3
4
5
6
package tdi.training.java.core;

public interface Engine{
    String engineBlock = "V4 inline";
    Integer cylinder = 4;
}

BreakCPU

1
2
3
4
5
6
package tdi.training.java.core;

public interface BreakCPU{
    boolean ktrc = true;
    boolean abs = true;
}

SportBike

1
2
3
4
5
package tdi.training.java.core;

public interface SportBike extends Engine, BreakCPU{
    boolean raceMode();
}

ZX10RR

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
package tdi.training.java.core;

public class ZX10RR implements SportBike {

    public boolean raceMode(){
        return true;
    }

    public static void main(String[] args){
        ZX10RR rea = new ZX10RR();
        System.out.println(
            "Engine : [ engineBlock : " + rea.engineBlock + ", cylinder : " + rea.cylinder + "], breaking system : [ abs : " + rea.abs + "], profile race mode is " + rea.raceMode()
        ); 	
    }
}