inheritance 100517052029 phpapp02

25
Inheritance (Pewarisan) Pemrograman Berorientasi Objek

Upload: similekete

Post on 28-Nov-2015

25 views

Category:

Documents


0 download

DESCRIPTION

pewarisan

TRANSCRIPT

Page 1: Inheritance 100517052029 Phpapp02

Inheritance (Pewarisan)

Pemrograman Berorientasi Objek

Page 2: Inheritance 100517052029 Phpapp02

Pengertian Inheritance

Proses pewarisan data dan method dari suatu kelas kepada kelas yang lain

Class yg mewariskan SuperclassClass yg diwariskan Subclass

Page 3: Inheritance 100517052029 Phpapp02

Keyword Extends

bentuk umum pada Java :<hak akses> class <subclass> extends <superclass>

Contoh :public class mobil extends KendaraanBermotor

bentuk umum pada C++ :class <subclass> : <hak akses> <superclass>contoh :class mobil : public kendaraan_bermotor

Page 4: Inheritance 100517052029 Phpapp02

Keyword Superuntuk memanggil konstruktor dan method oleh subclass yang dimiliki oleh superclass

• Bentuk umum untuk memanggil konstruktor :super ()super(parameter)

• Bentuk umum untuk memanggil method :super.method(parameter)

Page 5: Inheritance 100517052029 Phpapp02

Jenis-Jenis Inheritance

Single Inheritance (Pewarisan Tunggal)

Multiple Inheritance (Pewarisan Jamak)

Virtual Multiple Inheritance (Pewarisan Jamak Maya)

Page 6: Inheritance 100517052029 Phpapp02

Single Inheritance (Pewarisan Tunggal)

Adalah pewarisan yang jumlah kelas dasarnya (basic class / superclass) tunggal, tapi kelas turunan (subclass) bisa lebih dari satu

Konsep inheritance yang ada di Java hanya memperkenankan adanya single inheritance.

Page 7: Inheritance 100517052029 Phpapp02

Single Inheritance (Pewarisan Tunggal)

Class A

Class B

Class C

Page 8: Inheritance 100517052029 Phpapp02

Syntax Single Inheritance

C++ JAVA

class A

{

. . .

};

class B : public A

{

. . .

}

class A{ . . .}; Public class B extends A

{ . . .}

Page 9: Inheritance 100517052029 Phpapp02

Contoh Single Inheritance ( Java )

public class Komputer {

String Processor; int Monitor; int HardDisk; int Memory;

public int getHardDisk() { return HardDisk; } public void setHardDisk(int

HardDisk) { this.HardDisk = HardDisk; } public int getMemory() { return Memory; }

public void setMemory(int Memory) {

this.Memory = Memory;

}

public int getMonitor() {

return Monitor;

}

public void setMonitor(int Monitor) {

this.Monitor = Monitor;

}

public String getProcessor() {

return Processor;

}

public void setProcessor(String Processor) {

this.Processor = Processor;

}

}

Page 10: Inheritance 100517052029 Phpapp02

Contoh Single Inheritance ( Java )

public class Laptop extends Komputer{

String typeBattery;

int durasiBattery;

public int getDurasiBattery() {

return durasiBattery;

}

public void setDurasiBattery(int durasiBattery) {

this.durasiBattery = durasiBattery;

}

public String getTypeBattery() {

return typeBattery;

}

public void setTypeBattery(String typeBattery) {

this.typeBattery = typeBattery;

}

}

Page 11: Inheritance 100517052029 Phpapp02

Contoh Single Inheritance ( Java )

public class Circle {

private double radius;

Circle(double r) { //Constructor

radius = r;

}

Circle() { //Constructor

radius = 1.0;

}

public double getRadius() {

return radius;

}

public double findArea() {

return radius*radius*3.14;

}

}

Page 12: Inheritance 100517052029 Phpapp02

Contoh Single Inheritance ( Java )

public class Cylinder extends Circle {

private double length;

public Cylinder() { //Constructor

super();

length = 1.0;

}

public Cylinder(double r,double l) { //Constructor

super(r);

length = l;

}

public double getLength() {

return length;

}

public double findArea() {

System.out.println(“Call Cylinder find Area”);

return 2*super.findArea()+2*getRadius()*3.14159*length;

}

public double findVolume() {

return findArea() * length;

}

}

Page 13: Inheritance 100517052029 Phpapp02

Contoh Single Inheritance ( Java )

public class Test {

public static void main(String [] Args) {

//Create Cylinder object and display it's properties

Cylinder myCylinder = new Cylinder(5.0,2.0);

System.out.println("The length : "+myCylinder.getLength());

System.out.println("The radius : "+myCylinder.getRadius());

System.out.println("The Cylinder Volume : "+myCylinder.findVolume());

System.out.println("The area of Circle : "+myCylinder.findArea());

}

}

Page 14: Inheritance 100517052029 Phpapp02

Multiple Inheritance (Pewarisan Jamak)

Kelas yang diturunkan lebih dari satu kelas yang berbeda (jumlah kelas dasarnya lebih dari satu)

Java tidak mendukung Multiple Inheritance

C++ mendukung Multiple Inheritance

Java menggunakan interface untuk menggantikan konsep multiple inheritance Multiple Interface Inheritance

Page 15: Inheritance 100517052029 Phpapp02

Multiple Inheritance (Pewarisan Jamak)

Class A Class B

Class C

Class B

Page 16: Inheritance 100517052029 Phpapp02

Syntax Multiple Inheritanceclass A{ . . .};class B{ . . .}class C: public A, public B{ . . .}

Page 17: Inheritance 100517052029 Phpapp02

Contoh Multiple Inheritance (C++)

class ayah{ public: void rambut(){ cout<<">Rambutnya Keriting"<<endl; } };

class ibu{ public: void kulit(){ cout<<">Kulitnya Putih"<<endl; } };

Page 18: Inheritance 100517052029 Phpapp02

Contoh Multiple Inheritance (C++)

class anak : public ayah, public ibu{ public: void hidung(){ cout<<">Hidung anak itu

mancung"<<endl<<endl; } };

class cucu : public ayah, public ibu{ public: void pandai(){ cout<<">Cucu dari Kakek dan Nenek itu pandai

berhitung"<<endl<<endl; } };

Page 19: Inheritance 100517052029 Phpapp02

Virtual Multiple Inheritance

Kelas yang diturunkan lebih dari satu kelas yang berbeda (jumlah kelas dasarnya lebih dari satu)

Hanya saja, beberapa diantara kelas dasar tersebut merupakan kelas turunan dari kelas dasar yang sama

Page 20: Inheritance 100517052029 Phpapp02

Virtual Multiple Inheritance

Class A

Class B

Class D Class E

Class C

Class F

Page 21: Inheritance 100517052029 Phpapp02

Syntax VirtualMultiple Inheritanceclass A{ . . .};class B: virtual public A{ . . .};class C: virtual public A{ . . .};class D: public B, public C{ . . .};

Page 22: Inheritance 100517052029 Phpapp02

Contoh Virtual Multiple Inheritanceclass hewan{public:void bergerak(){cout<<" # Bergerak berpindah

tempat"<<endl;}};class kuda: virtual public hewan{public :void berlari(){cout<<" # Berlarinya sangat

cepat"<<endl;}};class burung: virtual public hewan{

public:void terbang(){cout<<" # Terbang menembus

awan"<<endl;}};class pegasus: public kuda, public

burung{public:void lariterbang(){cout<<"# Bersayap, lari dan

dapat terbang ke angkasa"<<endl;

}};

Page 23: Inheritance 100517052029 Phpapp02

Hal yg perlu dipertimbangkan saat mewariskan method :

Jika method di superclass PUBLIC maka semua subclass bersifat PUBLIC

Jika method di superclass PROTECTED maka bisa menjadi PROTECTED atau PUBLIC untuk semua subclass

Jika method di superclass DEFAULT maka pada subclass bisa menjadi PRIVATE

Jika method di superclass PRIVATE, maka tidak bisa diwariskan

Hubungan antara Akses dan Inheritance

Page 24: Inheritance 100517052029 Phpapp02

Hak Akses Subclass dan Superclass

Penentu Hak Akses Super Class Sub Class

PrivatePrivate Tidak Diwariskan

Protected Private

Public Private

ProtectedPrivate Tidak Diwariskan

Protected Protected

Public Protected

PublicPrivate Tidak Diwariskan

Protected Protected

Public Public

Page 25: Inheritance 100517052029 Phpapp02

Selesai

Universitas Komputer Indonesia