[pbo|t.inf&t.komputer|pert.2]
Postingan ini kelanjutan dari postingan yang lalu tentang pewarisan. Sedikit diulang, inheritance artinya sebuah kelas mewarisi kelas lain yang merupakan induknya. Karakter ini merupakan kekhasan pemrograman berorientasi objek. Langsung saja praktek, sebagai ilustrasi adalah kelas Person yang akan mewarisi kelas Teacher. Ada ungkapan “dosen juga manusia”, nah untuk inheritance juga sama, Teacher juga Person yang mewarisi ciri-ciri seorang manusia tetapi memiliki ciri-ciri lain yang tidak dimiliki oleh manusia lainnya.
Di sini diambil contoh kelas Person memiliki atribut: nama, umur, dan hobi dengan operasi: bio() dan greeting() yang masing-masing jika dipanggil berturut-turut memunculkan alert biografi dan kata sambutan dari objek yang bersangkutan. Buka mozilla dan masuk developer dengan menekan ctrl-shift-k agar muncul jendela developer. Buat sebuah kelas person:
function Person(first, last, age, gender, interests) {
this.name = {
‘first’: first,
‘last’ : last
};
this.age = age;
this.gender = gender;
this.interests = interests;
this.bio = function() {
alert(this.name.first + ‘ ‘ + this.name.last + ‘ is ‘ + this.age + ‘ years old. He likes ‘ + this.interests[0] + ‘ and ‘ + this.interests[1] + ‘.’);
};
this.greeting = function() {
alert(‘Hi! I\’m ‘ + this.name.first + ‘.’);
};
}
Tambahkan sebuah objek baru dengan nama variable person1.
var person1 = new Person(‘Bob’, ‘Smith’, 32, ‘male’, [‘music’, ‘skiing’]);
Berikutnya buat kelas Teacher dengan karakteristik yang sama dengan Person hanya memiliki satu tambahan atribut yaitu subject dan satu operasi yaitu farewell().
function Teacher(first, last, age, gender, interests, subject) {
Person.call(this, first, last, age, gender, interests);
this.subject = subject;
}
Perhatikan kata kunci call yang memanggil atribut yang dimiliki kelas Person dan menandakan kelas Teacher tersebut mewarisinya. Hanya saja ada tambahan baru yaitu subject.
Teacher.prototype.farewell = function() {
alert(this.name.first + ‘ has left the building. Bye for now!’);
};
Perhatikan teknik menambah operasi di sebuah kelas, dengan kata kunci prototype. Biasanya bermanfaat ketika akan menambah operasi tidak sekalian membuat kelas (tambahan). Ok, berikutnya menguji kelas Teacher apakah mewarisi Person? Buat satu objek.
var teacher1 = new Teacher(‘Dave’, ‘Griffiths’, 31, ‘male’, [‘football’, ‘cookery’], ‘mathematics’);
Jalankan operasi:
teacher1.bio()
teacher1.farewell()
Uji dengan person1, apakah bisa menjalankan operasi person1.farewell? Seharusnya tidak karena hanya milik kelas Teacher, sementara Teacher bisa menjalankan operasi bio() milik induknya.
Pastikan alert muncul. Selamat mencoba, semoga bermanfaat.