Pewarisan / Inheritance

Run Settings
LanguageJavaScript
Language Version
Run Command
//supperclass class MailService { constructor(sender) { this.sender = sender; } //Method yang kemampuannya sama antara kedua subclass biar tidak terjadi duplikasi kode sendMessage(message, receiver) { console.log(`${this.sender} sent ${message} to ${receiver}`); } } //subclass class WhatsAppService extends MailService { sendBroadcastMessage(message, receivers) { for (const receiver of receivers) { this.sendMessage(message, receiver); } } } //subclass class EmailService extends MailService { sendDelayedMessage(message, receiver, delay) { setTimeout(() => { this.sendMessage(message, receiver); }, delay); } } //Lihatlah bahwa didalam subclass WhatsAppService dan EmailService kita tetap memiliki akses terhadap method dari superclass melalui keyword this //karena subclass mewarisi sifat dari superclass //Pemanggilan const whatsapp = new WhatsAppService('+6281234567890'); //+6281234567890 sebagai sender const email = new EmailService('dimas@dicoding.com'); whatsapp.sendMessage('Hello', '+6289876543210'); whatsapp.sendBroadcastMessage('Hello', ['+6211111111', '+6233333333']); //dapat mengirimkan 1 pesan ke 2 orang secara bersamaan //whatsapp.sendDelayedMessage(); akan error email.sendMessage('Hello', 'john@doe.com'); email.sendDelayedMessage('Hello', 'john@doe.com', 3000); //akan delay beberapa detik //email.sendBroadcastMessage(); akan error
Editor Settings
Theme
Key bindings
Full width
Lines