I.
Pengertian
Pewarisan merupakan
suatu teknik membuat class atau objek (kelas turunan/ derived class) dengan
mewariskan kelas, sehingga memiliki sifat dan karakteristik yang sama dengan
kelas induknya (kelas dasar/base class) Konsep inheritance ini mengadopsi dunia
Konsep inheritance ini mengadopsi dunia riil dimana suatu entitas/obyek dapat
mempunyai entitas/obyek turunan. py y
Dengan konsep inheritance, sebuah class dapat mempunyai class turunan. Suatu class
yang mempunyai class Suatu class yang mempunyai class turunan dinamakan parent
class atau base class. Sedangkan class turunan itu sendiri seringkali disebut
subclass atau child class. Suatu subclass dapat mewarisi apa-apa yang dipunyai
oleh parent class. Karena suatu subclass dapat mewarisi apa-apa Karena suatu
subclass dapat mewarisi apaapa yang dipunyai oleh parent class-nya, maka member
dari suatu subclass adalah terdiri dari
apa-apa yang ia punyai dan juga apa-apa yang ia warisi dari class
parent-nya. Kesimpulannya, boleh dikatakan bahwa suatu subclass adalah tidak
lain hanya memperluas (extend) parent class nya (extend) parent class-nya.
Contoh :
Contoh Program Sebelum
Menerapkan Fungsi Inheritance :
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Sebelum_Inheritance
{
class Virus
{
public String nama;
public int size;
public String kemampuan;
public int banyak;
public void menyerang()
{
Console.WriteLine(" {0} menyerang dengan {1}
", this.nama, this.kemampuan);
}
public void MemperbanyakDiri()
{
Console.WriteLine(" {0} memperbanyak file
hingga {1} kali", this.nama, this.banyak * 5);
}
}
class Trojan
{
public String nama;
public int size;
public String kemampuan;
}
class Worm
{
public String nama;
public int size;
public String kemampuan;
public void menyerang()
{
Console.WriteLine(" {0} menyerang dengan {1}
", this.nama, this.kemampuan);
}
public void MenginfeksiRegistry()
{
Console.WriteLine(" {0} Menginfeksi
Registry", this.nama);
}
public void MenghapusNTLDR()
{
Console.WriteLine(" {0} Menghapus NTLDR ", this.nama);
}
}
class Program
{
static void Main(string[] args)
{
Virus virus1 = new Virus();
Trojan trojan1 = new Trojan();
Worm Worm1 = new Worm();
//pengaksesan attribut
virus1.nama = "Sality32.exe";
virus1.size = 32;
virus1.kemampuan = "Menghapus File Penting";
virus1.banyak = 5;
trojan1.nama = "BackdoorWin32.exe";
trojan1.size = 14;
trojan1.kemampuan = "Shutdown setiap 30 menit";
Worm1.nama = "Brontox.exe";
Worm1.size = 23;
Worm1.kemampuan = "Sleep
Setiap 15 menit";
//display
Console.WriteLine("\n Nama Virus: {0} kapasitas {1} Mb", virus1.nama, virus1.size);
Console.WriteLine(" Nama Trojan : {0} kapasitas
{1} Mb",
trojan1.nama, trojan1.size);
//pengaksesan method
virus1.menyerang();
virus1.MemperbanyakDiri();
Worm1.menyerang();
Worm1.MenginfeksiRegistry();
Worm1.MenghapusNTLDR();
Console.ReadLine();
}
}
}
Setelah berlatih dengan
program yang diatas, bagaimana menurut anda? Menulis berulang kali method dan
attribut yang sama sangatlah melelahkan dan membosankan bukan?? Nah disinilah
peranan inheritance diperlukan dengan inheritace/ pewarisan programer hanya
perlu membuat satu parent class (Super Class) yang mana attribut dan methodnya
akan diturunkan kepada anak-anak kelasnya(Sub Class) nya. Kemudian dari sub
class jika ingin menambahkan method baru , programer tinggal menambahkan method
yang diperluka n pada class tersebut, tanpa mengubah atau menghapus method yang
diturunkan, oleh karena itu struktur diagramnya akan berubah menjadi seperti
ini:
Dari bagan diagram diatas programmer perlu membuat
empat kelas baru yaitu kelas malware, virus, trojan, worm. Mengapa lebih mudah
menggunakan inheritance ? Karena setiap malware (virus/ trojan/ worm) sama sama
memiliki attribut nama, size, dan
kemampuan,juga memiliki method Menyerang(). Agar lebih jelasnya mari kita buat
kode programnya:
using System;
using
System.Collections.Generic;
using System.Linq;
using System.Text;
namespace
Contoh_Inheritance
{
class Malware
{
public string nama;
public int size;
public string kemampuan;
public void menyerang()
{
Console.WriteLine("\n {0}
menyerang dengan cara {1}", this.nama, this.kemampuan);
}
}
class Virus : Malware
{
public int banyak;
public void MemperbanyakDiri()
{
Console.WriteLine(" {0}
memperbanyak diri sebanyak {1} kali", this.nama, this.banyak * 5);
}
}
class Trojan : Malware
{
public void menyembunyikanFile()
{
Console.WriteLine("
Sembunyikan file yang ada di C:/program File/Microsoft Office");
}
public void memblokirCMD()
{
Console.WriteLine(" Blokir
semua aktifitas yang menggunakan Command Prompt");
}
}
class Worm : Malware
{
public void menginfeksiRegistry()
{
Console.WriteLine(" {0}
menginfeksi registry", this.nama);
}
public void menghapusNTLDR()
{
Console.WriteLine(" {0}
menghapus NT Loader", this.nama);
}
}
class Program
{
static void Main(string[] args)
{
Virus virus1 = new Virus();
Trojan trojan1 = new Trojan();
Worm worm1 = new Worm();
virus1.nama = "Sality32.axe";
virus1.size = 32;
virus1.banyak = 10;
virus1.kemampuan = "Menghapus
File Penting";
virus1.menyerang();
virus1.MemperbanyakDiri();
trojan1.nama = "BackdoorWin32.exe";
trojan1.kemampuan = " Shutdown
setiap 30 menit";
trojan1.menyerang();
trojan1.menyembunyikanFile();
worm1.nama = "Brontox.exe";
worm1.size = 14;
worm1.kemampuan = "Sleep
Setiap 15 menit";
worm1.menyerang();
worm1.menginfeksiRegistry();
worm1.menghapusNTLDR();
Console.ReadLine();
}
}
}