Pewarisan Jamak · •Java mewujudkannya dengan menggunakan Interface ... public, method pada class...

44
Pewarisan Jamak Brigida Arie Minartiningtyas, M.Kom.

Transcript of Pewarisan Jamak · •Java mewujudkannya dengan menggunakan Interface ... public, method pada class...

Page 1: Pewarisan Jamak · •Java mewujudkannya dengan menggunakan Interface ... public, method pada class yang mengimplementasikan interface harus diset ke public. Fungsinya adalah membuat

Pewarisan Jamak

Brigida Arie Minartiningtyas, M.Kom.

Page 2: Pewarisan Jamak · •Java mewujudkannya dengan menggunakan Interface ... public, method pada class yang mengimplementasikan interface harus diset ke public. Fungsinya adalah membuat

Polimorfisme Statik

• Diwujudkan denganmenggunakan overloading function, operator atauconstructor

• Binding Method dilakukansecara statik

• Ciri :• Nama method sama• Parameter berbeda (tipe

parameter dan/atau jumlah paramater dan/atau urutan parameter)

• Tipe balikan tidakmerupakan kriteria

Polimorfisme Dinamik

• Overridding Method• Interface• Abstract Class di Java

Page 3: Pewarisan Jamak · •Java mewujudkannya dengan menggunakan Interface ... public, method pada class yang mengimplementasikan interface harus diset ke public. Fungsinya adalah membuat

Abstract

Class

Pendefinisian kelas induk yang di dalamnya terdapat deklarasimethod yang tidak memerlukan implementasi sama sekali

Page 4: Pewarisan Jamak · •Java mewujudkannya dengan menggunakan Interface ... public, method pada class yang mengimplementasikan interface harus diset ke public. Fungsinya adalah membuat

Method Abstract

abstract tipe namaMethod (daftar-parameter)

Kelas Abstrak

abstract class nama-kelas{

badan kelas

}

Page 5: Pewarisan Jamak · •Java mewujudkannya dengan menggunakan Interface ... public, method pada class yang mengimplementasikan interface harus diset ke public. Fungsinya adalah membuat
Page 6: Pewarisan Jamak · •Java mewujudkannya dengan menggunakan Interface ... public, method pada class yang mengimplementasikan interface harus diset ke public. Fungsinya adalah membuat
Page 7: Pewarisan Jamak · •Java mewujudkannya dengan menggunakan Interface ... public, method pada class yang mengimplementasikan interface harus diset ke public. Fungsinya adalah membuat
Page 8: Pewarisan Jamak · •Java mewujudkannya dengan menggunakan Interface ... public, method pada class yang mengimplementasikan interface harus diset ke public. Fungsinya adalah membuat
Page 9: Pewarisan Jamak · •Java mewujudkannya dengan menggunakan Interface ... public, method pada class yang mengimplementasikan interface harus diset ke public. Fungsinya adalah membuat
Page 10: Pewarisan Jamak · •Java mewujudkannya dengan menggunakan Interface ... public, method pada class yang mengimplementasikan interface harus diset ke public. Fungsinya adalah membuat
Page 11: Pewarisan Jamak · •Java mewujudkannya dengan menggunakan Interface ... public, method pada class yang mengimplementasikan interface harus diset ke public. Fungsinya adalah membuat

Polimorfisme Statik

• Diwujudkan denganmenggunakan overloading function, operator atauconstructor

• Binding Method dilakukansecara statik

• Ciri :• Nama method sama• Parameter berbeda (tipe

parameter dan/atau jumlah paramater dan/atau urutan parameter)

• Tipe balikan tidakmerupakan kriteria

Polimorfisme Dinamik

• Overridding Method• Interface• Abstract Class di Java

Page 12: Pewarisan Jamak · •Java mewujudkannya dengan menggunakan Interface ... public, method pada class yang mengimplementasikan interface harus diset ke public. Fungsinya adalah membuat

Pewarisan awalnya dipandang sebagaimekanisme untuk sharing kode

(fungsi) dan data (atribut)

Page 13: Pewarisan Jamak · •Java mewujudkannya dengan menggunakan Interface ... public, method pada class yang mengimplementasikan interface harus diset ke public. Fungsinya adalah membuat

Pewarisan Jamak (multiple inheritance) dipandang sebagai mekanisme untukmembentuk suatu sub kelas dari beberapa implementasi super kelas

Page 14: Pewarisan Jamak · •Java mewujudkannya dengan menggunakan Interface ... public, method pada class yang mengimplementasikan interface harus diset ke public. Fungsinya adalah membuat

Class A

Class B

Class D

Class C

Problem – Ambiguitas

1. Timbul ketika 2 kelas induk memiliki suatu fungsi dengan nama yang sama. 2. Kelas turunan memiliki beberapa salinan kelas dasar yang sama.

Page 15: Pewarisan Jamak · •Java mewujudkannya dengan menggunakan Interface ... public, method pada class yang mengimplementasikan interface harus diset ke public. Fungsinya adalah membuat

Java TIDAK mendukung pewarisan Jamak

Java HANYA memiliki pewarisan tunggal

• Suatu kelas turunan hanya memiliki satu kelas induk

Lalu bagaimana perwujudannya dalam Java ?

• Java mewujudkannya dengan menggunakan Interface

• Multiple Interface Inheritance BUKAN Multiple Implementation Inheritance

Page 16: Pewarisan Jamak · •Java mewujudkannya dengan menggunakan Interface ... public, method pada class yang mengimplementasikan interface harus diset ke public. Fungsinya adalah membuat
Page 17: Pewarisan Jamak · •Java mewujudkannya dengan menggunakan Interface ... public, method pada class yang mengimplementasikan interface harus diset ke public. Fungsinya adalah membuat

INTERFACE

Page 18: Pewarisan Jamak · •Java mewujudkannya dengan menggunakan Interface ... public, method pada class yang mengimplementasikan interface harus diset ke public. Fungsinya adalah membuat
Page 19: Pewarisan Jamak · •Java mewujudkannya dengan menggunakan Interface ... public, method pada class yang mengimplementasikan interface harus diset ke public. Fungsinya adalah membuat

Rumah

Action<<interface>>

+bukaPintu()+tutupPintu()+bukaJendela()+tutupJendela()+berbunyi()+berasap()

Mobil

Page 20: Pewarisan Jamak · •Java mewujudkannya dengan menggunakan Interface ... public, method pada class yang mengimplementasikan interface harus diset ke public. Fungsinya adalah membuat
Page 21: Pewarisan Jamak · •Java mewujudkannya dengan menggunakan Interface ... public, method pada class yang mengimplementasikan interface harus diset ke public. Fungsinya adalah membuat

PendinginRuangan

AC

SettingTemperature<<interface>>

+on()+off()+Heat()+Cold()

Page 22: Pewarisan Jamak · •Java mewujudkannya dengan menggunakan Interface ... public, method pada class yang mengimplementasikan interface harus diset ke public. Fungsinya adalah membuat

SettingTemperature<<interface>>

+on()+off()+Heat()+Cold()

Dispenser

TwoInOneDispenser

Page 23: Pewarisan Jamak · •Java mewujudkannya dengan menggunakan Interface ... public, method pada class yang mengimplementasikan interface harus diset ke public. Fungsinya adalah membuat
Page 24: Pewarisan Jamak · •Java mewujudkannya dengan menggunakan Interface ... public, method pada class yang mengimplementasikan interface harus diset ke public. Fungsinya adalah membuat

TV

SmartTV ClassicTV

Setting<<interface>>

+On()+Off()+VolumeUp()+VolumeDown()+ChannelUp()+ChannelDown()

Displayable<<interface>>

Page 25: Pewarisan Jamak · •Java mewujudkannya dengan menggunakan Interface ... public, method pada class yang mengimplementasikan interface harus diset ke public. Fungsinya adalah membuat

Parent Other

ParentChild

Page 26: Pewarisan Jamak · •Java mewujudkannya dengan menggunakan Interface ... public, method pada class yang mengimplementasikan interface harus diset ke public. Fungsinya adalah membuat

Parent Other

OtherChildParentChild

OtherInterface

<<Interface>>

Page 27: Pewarisan Jamak · •Java mewujudkannya dengan menggunakan Interface ... public, method pada class yang mengimplementasikan interface harus diset ke public. Fungsinya adalah membuat

Kumpulan konstanta dan method yang tidak memiliki implementasi

• Interface seperti kontrak dengan ikatan implements

Semua method dalam interface adalah abstract.

• Tapi pada pendeklarasiannya tidak perlu menggunakan keyword abstract.

Interface digunakan untuk mendukung multiple inheritance (satu class memiliki superclass lebih darisatu)

Page 28: Pewarisan Jamak · •Java mewujudkannya dengan menggunakan Interface ... public, method pada class yang mengimplementasikan interface harus diset ke public. Fungsinya adalah membuat

Interface namaInterface {

deklarasiInterface

}

Page 29: Pewarisan Jamak · •Java mewujudkannya dengan menggunakan Interface ... public, method pada class yang mengimplementasikan interface harus diset ke public. Fungsinya adalah membuat
Page 30: Pewarisan Jamak · •Java mewujudkannya dengan menggunakan Interface ... public, method pada class yang mengimplementasikan interface harus diset ke public. Fungsinya adalah membuat

Selain bisa mendeklarasikanmethod abstract, di dalam interface juga dapat diberikan attribute final (konstanta)

Konstanta ini juga diwariskankepada class yang mengimplementasikan interface tersebut

Page 31: Pewarisan Jamak · •Java mewujudkannya dengan menggunakan Interface ... public, method pada class yang mengimplementasikan interface harus diset ke public. Fungsinya adalah membuat
Page 32: Pewarisan Jamak · •Java mewujudkannya dengan menggunakan Interface ... public, method pada class yang mengimplementasikan interface harus diset ke public. Fungsinya adalah membuat

Suatu class dapat meng-implementasikan lebih darisatu interface

Class yang mengimplementasikan suatu interface harus membuat implementasi dari method-method yang ada pada interface

Seluruh method pada interface secara otomatis bersifatpublic, method pada class yang mengimplementasikaninterface harus diset ke public

Page 33: Pewarisan Jamak · •Java mewujudkannya dengan menggunakan Interface ... public, method pada class yang mengimplementasikan interface harus diset ke public. Fungsinya adalah membuat
Page 34: Pewarisan Jamak · •Java mewujudkannya dengan menggunakan Interface ... public, method pada class yang mengimplementasikan interface harus diset ke public. Fungsinya adalah membuat

Fungsinya adalah membuat suatu class yang bisa diimplementasikan oleh berbagai class lain

bahkan yang tidak berelasi sama sekali

Page 35: Pewarisan Jamak · •Java mewujudkannya dengan menggunakan Interface ... public, method pada class yang mengimplementasikan interface harus diset ke public. Fungsinya adalah membuat

Interface dapat menerima warisan dari interface lain (bisa lebih dari satu)

Class bisa mengimplements lebih dari satuinterface

Class yang mengimplementasikan interface harusmengimplementasikan semua method interface

• Jika tidak, maka class tersebut harus dideklarasikan sebagaisebuah abstract class

Page 36: Pewarisan Jamak · •Java mewujudkannya dengan menggunakan Interface ... public, method pada class yang mengimplementasikan interface harus diset ke public. Fungsinya adalah membuat

Interface

Page 37: Pewarisan Jamak · •Java mewujudkannya dengan menggunakan Interface ... public, method pada class yang mengimplementasikan interface harus diset ke public. Fungsinya adalah membuat

class namaKelas [extends namaKelasSuper]

implements NamaInterface1, NamaInterface2{

}

Implements

Page 38: Pewarisan Jamak · •Java mewujudkannya dengan menggunakan Interface ... public, method pada class yang mengimplementasikan interface harus diset ke public. Fungsinya adalah membuat

Interface

Keyword : Implements

Semua method abstract

Tidak dapat mewarisi abstract class

Hanya dapat mendeklarasikankonstanta

Abstract

Keyword : Extends

Hanya beberapa atau mungkin hanyasatu method yang abstract

Bisa mengimplementasikan Interface

Dapat mendeklarasikan variable instance

Page 39: Pewarisan Jamak · •Java mewujudkannya dengan menggunakan Interface ... public, method pada class yang mengimplementasikan interface harus diset ke public. Fungsinya adalah membuat

Suatu class hanya bisa meng-extends satu class lainnya

Page 40: Pewarisan Jamak · •Java mewujudkannya dengan menggunakan Interface ... public, method pada class yang mengimplementasikan interface harus diset ke public. Fungsinya adalah membuat

Satu class bisa meng-implements lebih dari satu interface

Page 41: Pewarisan Jamak · •Java mewujudkannya dengan menggunakan Interface ... public, method pada class yang mengimplementasikan interface harus diset ke public. Fungsinya adalah membuat

Suatu interface dapat meng-extends lebih dari satu interface lainnya

Page 42: Pewarisan Jamak · •Java mewujudkannya dengan menggunakan Interface ... public, method pada class yang mengimplementasikan interface harus diset ke public. Fungsinya adalah membuat

interface A extends Cclass M implements B, Aclass N extends M

Page 43: Pewarisan Jamak · •Java mewujudkannya dengan menggunakan Interface ... public, method pada class yang mengimplementasikan interface harus diset ke public. Fungsinya adalah membuat

class Parent

{

private int val;

public Parent(int value) {

this.val = value;}

public int getValue() {

return this.val;}

// some code omitted

}

class Other

{

private int val;

public Other(int value) {this.val = val;}

public void whatever()

{System.out.println("whatever methods \n");}

}

Page 44: Pewarisan Jamak · •Java mewujudkannya dengan menggunakan Interface ... public, method pada class yang mengimplementasikan interface harus diset ke public. Fungsinya adalah membuat

interface OtherInterface

{void whatever();}

class OtherChild extends Other implements OtherInterface

{public OtherChild (int value){

super(value);

}

}

class ParentChild extends Parent implements OtherInterface

{

private OtherInterface child;

public ParentChild(int val) {

super(val);

child = new OtherChild(val);

}

public void whatever() {child.whatever();}

}