Pewarisan(Inheritance)

 

Pewarisan(Inheritance)

Dalam Bahasa C ++, memungkinkan untuk mewarisi atribut dan metode dari satu kelas ke kelas lainnya. kita mengelompokkan "konsep pewarisan" menjadi dua kategori:

  • kelas turunan (anak) - kelas yang mewarisi dari kelas lain
  • kelas dasar (orang tua) - kelas yang diwarisi dari

Untuk mewarisi dari kelas, gunakan simbol  titik dua “:

Dalam contoh di bawah ini, kelas Mobil (anak) mewarisi atribut dan metode dari kelas Kendaraan (orang tua):

#include <iostream>

#include <string>

using namespace std;

 

// Base class

class Vehicle {

  public:

    string brand = "Ford";

    void honk() {

      cout << "Tuut, tuut! \n" ;

    }

};

 

// Derived class

class Car: public Vehicle {

  public:

    string model = "Mustang";

};

 

int main() {

  Car myCar;

  myCar.honk();

  cout << myCar.brand + " " + myCar.model;

  return 0;

}

 

Pewarisan Bertingkat (Multilevel Inheritance)

Sebuah kelas juga dapat berasal dari satu kelas, yang sudah berasal dari kelas lain. Dalam contoh berikut, MyGrandChild Berasal dari class MyChild (Yang berasal dari MyClass).

#include <iostream>

using namespace std;

 

// Parent class

class MyClass {

  public:

    void myFunction() {

      cout << "Beberapa konten di kelas orang tua." ;

    }

};

 

// Kelas anak

class MyChild: public MyClass {

};

 

// Kelas cucu

class MyGrandChild: public MyChild {

};

 

int main() {

  MyGrandChild myObj;

  myObj.myFunction();

  return 0;

}

 

Multiple Inheritance

Sebuah kelas juga dapat berasal dari lebih dari satu kelas dasar, menggunakan daftar yang dipisahkan koma”,”:

#include <iostream>

using namespace std;

 

// Base class

class MyClass {

  public:

    void myFunction() {

      cout << "Beberapa konten di kelas orang tua.\n" ;

    }

};

 

// Kelas dasar lainnya

class MyOtherClass {

  public:

    void myOtherFunction() {

      cout << "Some content in another class.\n" ;

    }

};

 

// Kelas turunan

class MyChildClass: public MyClass, public MyOtherClass {

};

 

int main() {

  MyChildClass myObj;

  myObj.myFunction();

  myObj.myOtherFunction();

  return 0;

}

 

Inheritance Access

Penentu Akses

Dari contoh sebelumnya, bahwa ada tiga penentu yang tersedia di Bahasa C ++. Sampai saat ini, kita hanya menggunakan publik (anggota kelas dapat diakses dari luar kelas) dan private (anggota hanya dapat diakses di dalam kelas). Penentu ketiga, protect, mirip dengan pribadi, tetapi juga dapat diakses di kelas pewarisan:

#include <iostream>

using namespace std;

 

// Kelas dasar

class Employee  {

  protected:  // Protected access specifier

    int salary;

};

 

// Kelas turunan

class Programmer: public Employee {

  public:

    int bonus;

    void setSalary(int s) {

      salary = s;

    }

    int getSalary() {

      return salary;

    }

};

 

int main() {

  Programmer myObj;

  myObj.setSalary(50000);

  myObj.bonus = 15000;

  cout << "Salary: " << myObj.getSalary() << "\n";

  cout << "Bonus: " << myObj.bonus << "\n";

  return 0;

}

Share on :

0 Response to "Pewarisan(Inheritance)"

Posting Komentar