Monday, December 04, 2006

Inheritance dalam c#

alow..
dah lama juga yak gua gak ngeblog..
btw dalam post kali ini gua mo bagi ilmu dikit2x tentang inheritance dalam c#..
soalnya kemaren ada yang nanya ke gua gimana caranya...
nah biar asik ya gua post di blog aja gimana caranya..
o iya buat yang belum tau inheritance itu apa mending baca aja dulu di wiki


oke kita lanjut...
c# itu kan biasanya dikenal sebagai bahasa java-nya microsoft...
tapi ternyata C# gak terlalu nyontek java banget...
buktinya inheritance di c# rada beda syntaxnya...

kalo dijava mungkin kita bisa panggil fungsi super untuk manggil konstruktor kelas ancestornya..
tapi kalo di c# rada beda...
contohnya :

public class animal{
private string nama;
public animal(){
nama= "binatang";
}
public animal(string namaBinatang)
{
nama= namaBinatang;
}
}

yang diatas itu kelas ancestornya (syntax dalam java dan c# sama)
perbedaan syntax terasa pas kita coding di kelas anaknya ...

contoh kode untuk kelas ancestor :
java :
public class animal
{
protected String nama;
public animal()
{
nama = "binatang ";
}
public animal(String namaBinatang)
{
nama = namaBinatang;
}
public void printNama()
{
System.out.println(nama);
}
}

c#

class animal
{
protected string nama;
public animal()
{
nama = "binatang ";
}
public animal(string namaBinatang)
{
nama = namaBinatang;
}
public void printNama()
{
Console.WriteLine(nama);
}
}
nah ini kode untuk salah satu kelas anak :
java :

c# :
class kucing : animal
{
public kucing():base()
{
nama += "kucing";
}
public kucing(string namaKucing) : this(){
nama += " " + namaKucing;
}
}

java :
public class kucing extends animal
{
public kucing()
{
super()
nama += "kucing";
}
public kucing(String namaKucing){
this();
nama += " " + namaKucing;
}
}

nah keliatan jelas kan kalo ada perbedaan dalam syntax...
1. kalo C# dia mirip kayak c++ yang bisa nempelin pemanggilan fungsi dalam
deklarasi fungsi, sedangkan kalo java gak bisa nempelin pemanggilan fungsi kayak gitu..
2. kalo di C# kita manggil konstruktor kelas ancestor dengan prosedur base() sedangkan di
java dipanggil dengan konstruktor super()...
3. kalo di c# untuk menurunkan sebuah kelas kita cukup pake ":" dan diikuti nama kelas yang ingin diturunkan, sedangkan kalo java kita pake "extends " dan diikuti nam a kelas
Kayaknya untuk masalah inheritance cuma 2 itu deh perbedaan yang kerasa..
btw kalo mau source code untuk maen2x inheritance bodoh ini email gua aja..
ntar gua kirim filena.....

1 comment:

Anonymous said...

Nal, lo punya bakat jadi dosen. Namun, jgn sampe punya lo dapat mahasiswa kayak gw. Penjelasan lo bagus bgt, tapi gw tetep ga ngerti.