Class punya keturunan yang mewarisi sifat-sifatnya

Class monyet memiliki batasan-batasan seperti punya dua tangan, dua kaki, dua mata, dua lubang hidung, dua telinga, suka makan, tidak bisa berbicara, bisa membuat orang tertawa, dan lain-lain. Thole adalah obyek dari class monyet. Oleh karena itu Thole juga memiliki dua tangan, dua kaki, dua mata, dua lubang hidung, dua telinga, suka makan, tidak bisa berbicara, dan bisa membuat orang tertawa.

Jika kita perhatikan antara batasan-batasan yang dimiliki oleh class manusia dengan batasan-batasan yang dimiliki oleh class monyet, maka ada beberapa batasan yang dimiliki bersama.

Jika ada dua class atau lebih yang memiliki beberapa batasan yang dimiliki bersama, maka class tersebut bisa dibuat secara bertingkat sehingga ada sebuah class dasar yang batasan-batasannya merupakan batasan gabungan dari class-class tersebut. Sebagai contoh kita dapat membuat sebuah class dasar untuk menggabungkan antara class manusia dengan class monyet. Sebut saja class gabungan ini dengan nama Primata Berdiri. Class primata berdiri memiliki batasan-batasan seperti punya dua tangan, dua kaki, dua mata, dua lubang hidung, dua telinga, dan suka makan.

Dengan adanya class primata berdiri, maka class manusia bisa dibuat menjadi keturunan dari class primata berdiri yang mewarisi batasan-batasan yang dimiliki oleh primata berdiri ditambah sifat yang dimiliki sendiri yaitu sifat bisa berbicara dan tertawa jika mendengar cerita lucu.

Class monyet juga merupakan keturunan dari class primata berdiri dengan sifat tambahan tidak bisa berbicara dan bisa membuat orang tertawa.

Sekarang antara primata berdiri, monyet, dan manusia mempunyai hubungan yang bisa digambarkan sebagai berikut:

Hubungan antara Primata berdiri, Manusia, dan Monyet

Hubungan antara Primata berdiri, Manusia, dan Monyet

Class turunan dalam program

Untuk membuat class turunan dalam progam, maka kita menambahkan nama class leluhurnya di dalam kurung seperti contoh berikut:

  TManusia=class(TPrimataBerdiri)
  ....
  end;

Contoh di atas mendefinisikan TManusia sebagai class turunan dari TPrimataBerdiri.

Sekarang kita akan membuat contoh progam yang menggunakan class dasar dan class turunan. Class dasar adalah TGambar yang memiliki variabel Posisi dengan tipe TPoint. Untuk selanjutnya variabel yang dimiliki oleh class (atau object dan record) kita sebut dengan field. Sedangkan TPoint sendiri adalah tipe record dengan field X dan Y yang tipenya adalah integer. Selain field, TGambar juga memiliki prosedur dengan nama GambarObyek. Untuk selanjutnya prosedure atau fungsi yang dimiliki oleh class (atau object) kita sebut dengan method.

Class turunan dari TGambar salah satunya adalah TLingkaran yang memiliki tambahan field berupa Jari2 dengan tipe integer. Turunan yang lain adalah TKotak dengan tambahan field Panjang dan Lebar dengan tipe integer.

Contoh programnya adalah sebagai berikut:

program Turunan;
{$APPTYPE CONSOLE}
type

  TPoint=record
    X,Y:integer;
  end;

  TGambar=class
    Posisi:TPoint;
    procedure GambarObyek;
  end;

  TLingkaran=class(TGambar)
    Jari2:integer;
  end;

  TKotak=class(TGambar)
    Panjang:integer;
    Lebar:integer;
  end;

  procedure TGambar.GambarObyek;
  begin
    Writeln('Menggambar obyek');
  end;

var
  Gambar:TGambar;
  Lingkaran:TLingkaran;
  Kotak:TKotak;

begin
//membuat obyek
  Gambar:=TGambar.Create;
  Lingkaran:=TLingkaran.Create;
  Kotak:=TKotak.Create;
//memanggil method
  Gambar.GambarObyek;
  Lingkaran.GambarObyek;
  Kotak.GambarObyek;
//membuang obyek
  Gambar.Free;
  Lingkaran.Free;
  Kotak.Free;

  Writeln('Tekan Enter');
  Readln;
end.

Jika program dijalankan, keluarannya akan tampak seperti berikut:

Menggambar obyek
Menggambar obyek
Menggambar obyek
Tekan Enter

Perhatikan bahwa kita tidak membuat definisi method GambarObyek untuk TLingkaran maupun TKotak, akan tetapi kedua class turunan tersebut telah mewarisi method GambarObyek dari TGambar.

Apakah Anda menyukai post ini? Mengapa tidak memberikan komentar di bawah dan melanjutkan perbincangan, atau berlangganan my feed dan dapatkan artikel semacam ini yang dikirm secara otomatis feed reader Anda.
Harap diperhatikan bahwa komentar atau pertanyaan yang disampaikan haruslah sesuai dengan topik yang sedang dibahas. Komentar atau pertanyaan yang tidak sesuai dengan topik akan kami hapus :!:

Tinggalkan komentar

Sebelum membuat komentar, pastikan Anda telah membaca komentar-komentar sebelumnya. Jangan membuat pertanyaan yang telah ditanyakan. Perhatikan pula link-link dalam artikel. Lihatlah link tersebut sebelum membuat pertanyaan, karena mungkin penjelasan dari pertanyaan Anda telah di jawab dalam link tersebut.

Komentar yang tidak mengikuti aturan ini akan dihapus!

(wajib)

(wajib)


Time limit is exhausted. Please reload the CAPTCHA.