Inheritance In C#

Hallo kawan BMS, kali ini kita akan membahas apa yang namanya Inheritance atau biasanya disebut pewarisan. Sebenarnya di postingan terdahulu sudah ane bahas mengenai pewarisan ini, namun yang ane contohkan dalam bahasa pemrograman Java. Sebenarnya gak jauh beda sih ama Java, yang membedakan cuma sintaxnya saja Open-mouthed smile.

Thumbs upBaiklah, sekarang mari kita review kembali materi mengenai Inheritance. Inheritance merupakan penurunan sifat atau pewarisan dimana dimisalkan suatu induk tentunya akan memiliki anak yang mewarisi sebagian atau seluruh sifat induknya. Dalam hal ini suatu class induk/parent disebut sebagai super class dan anak/child disebut sebagai sub class.

Hirarki Class

inheritanceHirarki.jpg

Dengan konsep Inheritance ini merupakan sebuah keuntungan karena kita hanya perlu

menuliskan atau mendefinisikan suatu method pada superclass dan secara otomatis subclass akan mewarisi sifat tersebut atau method tersebut. Untuk mendefinisikan subclass kita menggunakan kata kuci extends, berikut contoh programnya :

Hirarki Class yang akan kita buat.

inheritance_thumb.jpg

Parent Class : Kendaraan

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Inheritance
{
    class Kendaraan
    {
        private int _jumlahRoda;
        private int _kecepatan;
        private String _warna;
        

        public int JumlahRoda
        {
            get { return _jumlahRoda; }
            set { _jumlahRoda = value; }
        }

        public int Kecepatan
        {
            get { return _kecepatan; }
            set { _kecepatan = value; }
        }

        public String Warna
        {
            get { return _warna; }
            set { _warna = value; }
        }

        public virtual void Mengerem()
        {
            Console.WriteLine("Kendaraan Mengerem .. !!!");
        }

        public void Melaju()
        {
            Console.WriteLine("Kendaraan Melaju .. !!!");
        }
        
    }
}

Pada method Mengerem() terdapat keyword virtual. Keyword ini menandakan bahwa method tersebut dapat di override/ditimpa oleh class turunannya. Artinya kita boleh mengubah isi dari method Mengerem().

Subclass Air


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Inheritance
{
    class Air : Kendaraan
    {
        public void Berlayar()
        {
            Console.WriteLine("Berlayar di air .. !!!");
        }
    }
}

simbol ā€˜:ā€™ menandai bahwa class Air mewarisi keseluruhan dari class Kendaraan

Selanjutnya Subclass Darat


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Inheritance
{
    class Darat : Kendaraan
    {
        public void Berjalan()
        {
            Console.WriteLine("Berjalan di tanah .. !!!");
        }

    }
}

Subclass Udara


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Inheritance
{
    class Udara : Kendaraan
    {
        public void Terbang()
        {
            Console.WriteLine("Terbang di udara .. !!!");
        }
    }
}

Subclass Perahu


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Inheritance
{
    class Perahu : Air
    {

        public override void Mengerem()
        {
            Console.WriteLine("Perahu mengerem .. !!!");
        }
    }
}

Pada method Mengerem() diatas terdapat keyword override. Keyword ini menandakan bahwa isi method tersebut menimpa method Mengerem() pada class parentnya.

Subclass Mobil


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Inheritance
{
    class Mobil:Darat
    {
        public Mobil()
        {
            Warna = "Merah";
            JumlahRoda = 4;
            Kecepatan = 100;
        }

        public new void Mengerem()
        {
            Console.WriteLine("Mobil Mengerem di tanah .. !!!");
        }
    }
}

Subclass Motor


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Inheritance
{
    class Motor : Darat
    {
        public Motor()
        {
            Warna = "Merah";
            JumlahRoda = 2;
            Kecepatan = 100;
        }

        public override void Mengerem()
        {
            Console.WriteLine("Motor Mengerem .. !!!");
        }
    }
}

Subclass Pesawat


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Inheritance
{
    class Pesawat:Udara
    {
        public Pesawat()
        {
            Warna = "Biru";
            JumlahRoda =3;
            Kecepatan = 200;
        }
    }
}

Sekarang kita akan membuat sebuah class lagi untuk uji coba Inheritance.


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Inheritance
{
    class Program
    {
        static void Main(string[] args)
        {
            //inheritance
            Console.WriteLine("Inheritance");
            Mobil mobil = new Mobil();
            Motor motor = new Motor();
            Perahu perahu = new Perahu();
            Pesawat pesawat = new Pesawat();

            perahu.Melaju();
            perahu.Warna = "Hijau";
            perahu.Kecepatan = 30;
            perahu.JumlahRoda = 0;
            Console.WriteLine("Warna Perahu :{0} ", perahu.Warna);
            Console.WriteLine("Kecepatan Perahu :{0} ", perahu.Kecepatan);
            Console.WriteLine("Jumlah roda Perahu :{0} ", perahu.JumlahRoda);
            Console.WriteLine("---------------------");

            mobil.Melaju();
            Console.WriteLine("Warna Mobil :{0} ", mobil.Warna);
            Console.WriteLine("Kecepatan Mobil :{0} ", mobil.Kecepatan);
            Console.WriteLine("Jumlah roda Mobil :{0} ", mobil.JumlahRoda);
            Console.WriteLine("---------------------");

            motor.Melaju();
            Console.WriteLine("Warna Motor :{0} ", motor.Warna);
            Console.WriteLine("Kecepatan Motor :{0} ", motor.Kecepatan);
            Console.WriteLine("Jumlah roda Motor :{0} ", motor.JumlahRoda);
            Console.WriteLine("---------------------");

            pesawat.Melaju();
            Console.WriteLine("Warna Pesawat :{0} ", pesawat.Warna);
            Console.WriteLine("Kecepatan Pesawat :{0} ", pesawat.Kecepatan);
            Console.WriteLine("Jumlah roda Pesawat :{0} ", pesawat.JumlahRoda);

            Console.ReadKey();
        }
    }
}

Jalankan program kawan-kawan.

4-14-2013 7-23-34 PM

Catatan :

Keyword virtual : menandakan bahwa method dengan keyword ini boleh di override/timpa oleh subclassnya.

Keyword override : menandakan bahwa isi dari method tersebut menimpa method di parentclassnya.

Keyword new : method ini tidak menimpa method di parentclassnya tapi hanya disembunyikan. Method dengan keyword ini memiliki nama yang sama dengan method turunan dari parentclassnya.

Oke kawan-kawan, untuk postingan kali ini ane akhiri sekian. Sampai jumpa di postingan berikutnya.

Bersambung ā€¦

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s