Inheritance - Presentation Transcript
Atau pewarisan pada pemrograman berorientasi objek merupakan suatu hubungan dua buah kelas atau lebih. Dalam hal ini ada kelas yangmemiliki atribut dan metode yang sama dengan kelas lainnya beserta atributdan metode tambahan yang merupakan sifat khusus kelas yang menjaditurunannya
1. Inheritance (Pewarisan) merupakan salah satu dari tiga konsep dasar OOP.2. Konsep inheritance ini mengadopsidunia riil dimana suatu entitas/obyek 3. dapat mempunyai entitas/obyek turunan.Dengan konsep inheritance, sebuahclass dapat mempunyai class turunan.
- PemrogramanBerorientasiObjek
Inheritance (Pewarisan) - Pengertian Inheritance
Proses pewarisan data dan method dari suatu kelas kepada kelas yang lain
Class yg mewariskanSuperclass
Class yg diwariskan Subclass - Keyword Extends
bentukumumpada Java :
<hakakses> class <subclass> extends <superclass>
Contoh :
public class mobilextendsKendaraanBermotor
bentukumumpada C++ :
class <subclass> : <hakakses> <superclass>
contoh :
class mobil : public kendaraan_bermotor - Keyword Super
untuk memanggil konstruktor dan method oleh subclass yang dimiliki oleh superclass- Bentuk umum untuk memanggil konstruktor :
super(parameter)- Bentuk umum untuk memanggil method :
- Jenis-Jenis Inheritance
Single Inheritance (Pewarisan Tunggal)
Multiple Inheritance (PewarisanJamak)
Virtual Multiple Inheritance (PewarisanJamak 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)
- 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;
intHardDisk;
int Memory;
public intgetHardDisk() {
return HardDisk;
}
public void setHardDisk(intHardDisk) {
this.HardDisk = HardDisk;
}
public intgetMemory() {
return Memory;
}
public void setMemory(int Memory) {
this.Memory = Memory;
}
public intgetMonitor() {
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;
intdurasiBattery;
public intgetDurasiBattery() {
return durasiBattery;
}
public void setDurasiBattery(intdurasiBattery) {
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 (PewarisanJamak)
Kelas yang diturunkan lebih dari satu kelas yang berbeda (jumlahkelas 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 (PewarisanJamak)
- Syntax Multiple Inheritance
class A
{
. . .
};
class B
{
. . .
}
class C: public A, public B
{
. . .
} - Contoh Multiple Inheritance (C++)
class ayah{
public:
void rambut(){
cout<<">RambutnyaKeriting"<<endl;
}
};
class ibu{
public:
void kulit(){
cout<<">KulitnyaPutih"<<endl;
}
}; - Contoh Multiple Inheritance (C++)
class anak : public ayah, public ibu{
public:
void hidung(){
cout<<">Hidunganakitumancung"<<endl<<endl;
}
};
class cucu : public ayah, public ibu{
public:
void pandai(){
cout<<">CucudariKakekdanNenekitupandaiberhitung"<<endl<<endl;
}
}; - Virtual Multiple Inheritance
Kelas yang diturunkan lebih dari satu kelas yang berbeda (jumlah kelas dasarnya lebih darisatu)
Hanyasaja, beberapa diantara kelas dasar tersebut merupakan kelas turunan dari kelas dasar yang sama - Virtual Multiple Inheritance
- Syntax VirtualMultiple Inheritance
class A
{
. . .
};
class B: virtual public A
{
. . .
};
class C: virtual public A
{
. . .
};
class D: public B, public C
{
. . .
}; - Contoh Virtual Multiple Inheritance
class hewan
{
public:
void bergerak()
{
cout<<" # Bergerakberpindahtempat"<<endl;
}
};
class kuda: virtual public hewan
{
public :
void berlari()
{
cout<<" # Berlarinyasangatcepat"<<endl;
}
};
class burung: virtual public hewan
{
public:
void terbang()
{
cout<<" # Terbangmenembusawan"<<endl;
}
};
class pegasus: public kuda, public burung
{
public:
void lariterbang()
{
cout<<"# Bersayap, laridandapatterbangkeangkasa"<<endl;
}
}; - Hal yg perlu dipertimbangkan saat mewariskan method :
Jika method disuperclass PUBLIC makasemua subclass bersifat PUBLIC
Jika method disuperclass PROTECTED maka bisa menjadi PROTECTED atau PUBLIC untuksemua subclass
Jika method disuperclass DEFAULT maka pada subclass bisamenjadi PRIVATE
Jika method disuperclass PRIVATE, maka tidak bisa diwariskan
Hubungan antara Akses dan Inheritance - HakAkses Subclass danSuperclass
- Selesai
Referensi : http://www.slideshare.net/Goenz/inheritance
http://www.scribd.com/doc/44969884/Pengertian-Inheritance-Bu-Ruci
0 komentar:
Posting Komentar