Wednesday, February 19, 2014

Inheritance pada program C#

Inheritance dalam bahasa Indonesia yaitu warisan atau turunan. Lalu apa hubungannya dengan sebuah program?
Oke, inheritance akan kita kaitkan pada sebuah class. misalkan contoh kasus kita adalah pada sebuah binatang. class binatang mempunyai turunan yaitu class binatang air, class binatang darat, dan class binatang udara. class binatang air mempunyai turunan class ikan, class binatang darat mempunyai turunan class kambing, class binatang udara mempunyai turunan class burung.
Setiap class turunan dapat memiliki anggota dari class nenek moyangnya. misal class binatang memiliki method nyawa, maka class binatang air, darat, dan udara, juga class ikan, kambing, dan burung dapat memiliki method nyawa.


Untuk lebih jelasnya perhatikan program di bawah ini :

Class Binatang :
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Turunan
{
    class Binatang
    {
        private int _nyawa;

        public int Nyawa
        {
            get { return _nyawa; }
            set { _nyawa = value; }
        }

        public void Menyerang()
        {
            Console.WriteLine("Binatang menyerang...");
        }

        public void Kabur()
        {
            Console.WriteLine("Binatang kabur...");
        }
    }
}

Class BinatangAir :
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Turunan
{
    class BinatangAir : Binatang
    {
        public void Berenang()
        {
            Console.WriteLine("Binatang sedang berenang...");
        }
    }
}
Class BinatangDarat :
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Turunan
{
    class BinatangDarat : Binatang
    {
        public void Berlari()
        {
            Console.WriteLine("Binatang sedang berlari...");
        }
    }
}
Class BinatangUdara :
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Turunan
{
    class BinatangUdara : Binatang
    {
        public void Terbang()
        {
            Console.WriteLine("Binatang sedang terbang...");
        }
    }
}
Class Ikan :
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Turunan
{
    class Ikan : BinatangAir
    {
    }
}
Class Kambing :
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Turunan
{
    class Kambing : BinatangDarat
    {
    }
}
Class Burung :
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Turunan
{
    class Burung : BinatangUdara
    {
    }
}
Class Program :
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Turunan
{
    class Program
    {
        static void Main(string[] args)
        {
            Ikan piranha = new Ikan();
            Kambing hitam = new Kambing();
            Burung garuda = new Burung();

            piranha.Berenang();
            hitam.Berlari();
            garuda.Terbang();

            piranha.Menyerang();
            hitam.Menyerang();
            garuda.Menyerang();

            piranha.Kabur();
            hitam.Kabur();
            garuda.Kabur();
        }
    }
}

Coba perhatikan pada bagian class BinatangAir  terdapat perintah class BinatangAir : Binatang
dan juga pada class turunan lainnya terdapat perintah sejenis. Pada contoh Class BinatangAir perintah tersebut menunjukan bahwa Class BinatangAir merupakan keturunan dari Class Binatang, sehingga Class Binatang Air dan turunannya juga akan mewarisi anggota milik Class Binatang.
Sehingga jika programnya di eksekusi akan menampilkan hasil seperti di bawah :