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()
);
}
}