Sunday, 7 June 2015

26.Overriding

Bila kita tidak puas dengan objek (metode, variable dan lain-lain) yang ditawarkan oleh superclass, kita juga bisa meng-overriding-nya. Kita bisa memodifiksi metode yang ada di superclass. Untuk overriding sebuah metode kita tidak perlu sesuatu yang lain dengan pyton, kita tinggal membuat class dan mengganti yang ada pada superclass dengan yang baru (dengan nama yang sama).

Contoh sebelumnya:
  1. class kontak:
  2.      semuaKontak=[]

  3.      def __init__(self, nama1, noTlp1):
  4.           self.nama=nama1
  5.           self.noTlp=noTlp1
  6.           kontak.semuaKontak.append(self)

  7. class subClass(kontak):
  8.      def cetak(self, komen):
  9.           print('nama = {}, no telepon ={}, {}'.format(self.nama,self.noTlp,komen))

Class kontak merupakan subclass dari class object, dan merupakan superclass dari class 'subClass', Kita bicara soal class 'kontak' dan class 'subClass' saja. Bila kita ingin mengubah class 'superclass kontak' kita bisa membuat class yang lain:
  1. class overrideSuperClassKontak(kontak):
  2.      def __init__(self, nama1, noTlp1, noHp1):
  3.           self.nama=nama1
  4.           self.noTlp=noTlp1
  5.           self.noHp=noHp1

 jadi program kita akan terlihat seperti ini:
Pada class yang baru kita buat ini (class 'overrideSuperClassKontak') kita mengubah kebiasaan dari superclass 'kontak', yang bisanya kita menginitialkan hanya nama dan noTlp saja. Pada subclass 'overrideSuperClassKontak' kita menambahkan initial 'noHp', overriding tidak sebatas menambahkan saja, bisa dikurangi, modifikasi, atau pun menjadi lain dari superclass nya sendiri, yang pasti nama metodenya harus sama.




No comments:

Post a Comment