inheritance 100517052029 phpapp02

Post on 28-Nov-2015

25 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

pewarisan

TRANSCRIPT

Inheritance (Pewarisan)

Pemrograman Berorientasi Objek

Pengertian Inheritance

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

Class yg mewariskan SuperclassClass yg diwariskan Subclass

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

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)

Jenis-Jenis Inheritance

Single Inheritance (Pewarisan Tunggal)

Multiple Inheritance (Pewarisan Jamak)

Virtual Multiple Inheritance (Pewarisan Jamak Maya)

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.

Single Inheritance (Pewarisan Tunggal)

Class A

Class B

Class C

Syntax Single Inheritance

C++ JAVA

class A

{

. . .

};

class B : public A

{

. . .

}

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

{ . . .}

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;

}

}

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;

}

}

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;

}

}

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;

}

}

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

}

}

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

Multiple Inheritance (Pewarisan Jamak)

Class A Class B

Class C

Class B

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

Contoh Multiple Inheritance (C++)

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

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

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

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

Virtual Multiple Inheritance

Class A

Class B

Class D Class E

Class C

Class F

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

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;

}};

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

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

Selesai

Universitas Komputer Indonesia

top related