PemrogramanBerorientasiObjekInheritance (Pewarisan)
Pengertian Inheritance Prosespewarisan data dan method darisuatukelaskepadakelas yang lainClass ygmewariskanSuperclassClass ygdiwariskan  	    Subclass
Keyword Extendsbentukumumpada Java :	<hakakses> class <subclass> extends <superclass>Contoh :	public class mobilextendsKendaraanBermotorbentukumumpada C++ :	class <subclass> : <hakakses> <superclass>contoh :	class mobil : public kendaraan_bermotor
Keyword Superuntukmemanggilkonstruktordan method oleh subclass yang dimilikiolehsuperclassBentukumumuntukmemanggilkonstruktor :super ()super(parameter)Bentukumumuntukmemanggil method :super.method(parameter)
Jenis-Jenis Inheritance Single Inheritance	(Pewarisan Tunggal)Multiple Inheritance (PewarisanJamak)Virtual Multiple Inheritance (PewarisanJamak Maya)
Single Inheritance (Pewarisan Tunggal)Adalahpewarisan yang jumlahkelasdasarnya (basic class / superclass) tunggal, tapikelasturunan (subclass) bisalebihdarisatuKonsep inheritance yang ada di Java hanya memperkenankan adanya single inheritance.
Single Inheritance (Pewarisan Tunggal)
Syntax Single InheritanceC++JAVAclass 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 diturunkanlebihdarisatukelas yang berbeda (jumlahkelasdasarnyalebihdarisatu)Java tidakmendukung Multiple InheritanceC++ mendukungMultiple InheritanceJava menggunakan interface untukmenggantikan konsep multiple inheritance   	Multiple Interface Inheritance
Multiple Inheritance (PewarisanJamak)
Syntax Multiple Inheritanceclass 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 InheritanceKelas yang diturunkanlebihdarisatukelas yang berbeda (jumlahkelasdasarnyalebihdarisatu)Hanyasaja, beberapadiantarakelasdasartersebutmerupakankelasturunandarikelasdasar yang sama
Virtual Multiple Inheritance
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<<" # 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 ygperludipertimbangkansaatmewariskan method :Jika method disuperclass PUBLIC makasemua subclass bersifat PUBLICJika method disuperclass PROTECTED makabisamenjadi PROTECTED atau PUBLIC untuksemua subclassJika method disuperclass DEFAULT makapada subclass bisamenjadi PRIVATEJika method disuperclass PRIVATE, makatidakbisadiwariskanHubunganantaraAksesdan Inheritance
HakAkses Subclass danSuperclass
SelesaiUniversitasKomputer Indonesia

Inheritance

  • 1.
  • 2.
    Pengertian Inheritance Prosespewarisandata dan method darisuatukelaskepadakelas yang lainClass ygmewariskanSuperclassClass ygdiwariskan Subclass
  • 3.
    Keyword Extendsbentukumumpada Java: <hakakses> class <subclass> extends <superclass>Contoh : public class mobilextendsKendaraanBermotorbentukumumpada C++ : class <subclass> : <hakakses> <superclass>contoh : class mobil : public kendaraan_bermotor
  • 4.
    Keyword Superuntukmemanggilkonstruktordan methodoleh subclass yang dimilikiolehsuperclassBentukumumuntukmemanggilkonstruktor :super ()super(parameter)Bentukumumuntukmemanggil method :super.method(parameter)
  • 5.
    Jenis-Jenis Inheritance SingleInheritance (Pewarisan Tunggal)Multiple Inheritance (PewarisanJamak)Virtual Multiple Inheritance (PewarisanJamak Maya)
  • 6.
    Single Inheritance (PewarisanTunggal)Adalahpewarisan yang jumlahkelasdasarnya (basic class / superclass) tunggal, tapikelasturunan (subclass) bisalebihdarisatuKonsep inheritance yang ada di Java hanya memperkenankan adanya single inheritance.
  • 7.
  • 8.
    Syntax Single InheritanceC++JAVAclassA{ . . .};class B : public A{ . . .}class A{ . . .};Public class B extends A{ . . .}
  • 9.
    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; }}
  • 10.
    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; }}
  • 11.
    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; } }
  • 12.
    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; } }
  • 13.
    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()); } }
  • 14.
    Multiple Inheritance (PewarisanJamak)Kelasyang diturunkanlebihdarisatukelas yang berbeda (jumlahkelasdasarnyalebihdarisatu)Java tidakmendukung Multiple InheritanceC++ mendukungMultiple InheritanceJava menggunakan interface untukmenggantikan konsep multiple inheritance Multiple Interface Inheritance
  • 15.
  • 16.
    Syntax Multiple InheritanceclassA{ . . .};class B{ . . .}class C: public A, public B{ . . .}
  • 17.
    Contoh Multiple Inheritance(C++) class ayah{ public: void rambut(){cout<<">RambutnyaKeriting"<<endl; } };class ibu{ public: void kulit(){cout<<">KulitnyaPutih"<<endl; } };
  • 18.
    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; } };
  • 19.
    Virtual Multiple InheritanceKelasyang diturunkanlebihdarisatukelas yang berbeda (jumlahkelasdasarnyalebihdarisatu)Hanyasaja, beberapadiantarakelasdasartersebutmerupakankelasturunandarikelasdasar yang sama
  • 20.
  • 21.
    Syntax VirtualMultiple InheritanceclassA{ . . .};class B: virtual public A{ . . .};class C: virtual public A{ . . .};class D: public B, public C{ . . .};
  • 22.
    Contoh Virtual MultipleInheritanceclass 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;}};
  • 23.
    Hal ygperludipertimbangkansaatmewariskan method:Jika method disuperclass PUBLIC makasemua subclass bersifat PUBLICJika method disuperclass PROTECTED makabisamenjadi PROTECTED atau PUBLIC untuksemua subclassJika method disuperclass DEFAULT makapada subclass bisamenjadi PRIVATEJika method disuperclass PRIVATE, makatidakbisadiwariskanHubunganantaraAksesdan Inheritance
  • 24.
  • 25.

Editor's Notes