|
C#’ta Inheritance(Miras) Kavramı |
|
Gönderiliyor lütfen bekleyin... |
|
|
Bu yazıda inheritance’ın programlamada ne anlama
geldiğinden bahsedeceğim. Inheritance aslında Oject Oriented Programming!in
(Nesne Yönelimli Programlama) üç prensibinden bir tanesidir. Diğer iki prensip
ise encapsulation ve polymorphism’dir. Tabii ki diğer iki prensibe bu yazıda
değinmeyeceğim. En sade şekliyle: inheritance sayesinde bir sınıfın metodlarını
kullanan başka sınıflar türetilebilmesine yarar diyebiliriz. Ancak ayrıntılarına
birazdan ineceğim. Eğer daha önce nesne tabanlı bir programlama dili kullandıysanız,
(Java ve C++ gibi) C#’ta inheritance’a çok çabuk adapte olursunuz. Aslında şu
ana kadar bahsettiklerim genel kültürden ibaretti ve eminim çoğunuz da bunları
biliyordunuz. (Nesne Tabanlı Programlama geçmişi olmayanları da düşünerek böyle
bir giriş yaptım.)
Evet şimdi ana kısma yani programın
nasıl yazılacağına geliyoruz. Bunun için basit bir örnek vereceğim. Düşünün
ki student adında bir sınıfımız(class) olsun. Ayrıca bir de teacher adında bir
sınıfıımız olsun. Bunların ortak özellikleri nedir? Tabii ki insan olmaları
diyeceksiniz ve ana sınıfımıza yani person sınıfına ulaşmış olacaksınız. Şimdi
basitçe özetlersek person sınıf’ından teacher ve student adında iki sınıf türetmiş
olduk. Sırada bunun kodunu nasıl yazacağımız var. Alışkanlıklara devam edip
adım adım kodu yazalım. (Bunu program yazarken de ilke edinirseniz faydalı olacağına
inanıyorum. Önce ne yapacağınızı adım adım belirleyin sonra belirlediklerinizi
adım adım uygulamaya geçirin.)
I.
İlk
önce person sınıfını yazalım.
using
System;
using
System.Windows.Forms;
namespace
Miras
{
public abstract
class Person
//sınıfın
sadece türetileceğini
//belirtmek
için sınıfı abstaract keyword’ünü kullanarak soyutladık
//Ancak burada abstaract keyword’ünün kullanılmasındaki
temel
//faktör bu sınıfın abstract metod içermesidir.
{
//Türetilen
sınıflarda kullanılmak üzere 3 tane değişken tanımladık.
protected string
Name;
protected int
Age;
protected string
Gender;
//Türetilen sınıflarda metodun içi doldurulması
için
//abstract olarak makeAction metodu tanımladık
public abstract
void makeAction();
public Person()
{
}
}
}
|
II.
Şimdi
de Student sınıfını yazalım.
using
System;
using
System.Windows.Forms;
namespace
Miras
{
//Student
class'ı Person class'ından miras aldığını belirtiyoruz.
public
class Student:Person
{
//Person
sınıfında tanımlanan abstract metodu override ederek
//metodun
içini istediğimiz gibi doldurduk.
public
override void
makeAction()
{
MessageBox.Show("Ben
bir öğrenciyim");
}
public
Student(string name,int
age,string gender)
{
this.Name=name;
this.Age
= age;
this.Gender=gender;
}
}
}
|
III.
Sıra Teacher
sınıfını yazmaya geldi.
using
System;
using
System.Windows.Forms;
namespace
Miras
{
public
class Teacher:Person //Teacher
class'ı Person class'ından
//
miras alıyor
{
private
string Unvan; //Teacher
sınıfında kullanılmak üzere
//Unvan
adında bir değişken tanımladık.
//Person
sınıfında tanımlanan abstract metodu override ederek
//metodun
içini istediğimiz gibi doldurduk.
public
override void
makeAction()
{
MessageBox.Show("Ben
bir öğretmenim");
}
public
Teacher(string name,int
age,string gender,string
unvan)
{
this.Name=name;
this.Age
= age;
this.Gender=gender;
this.Unvan=unvan;
}
}//
teacher sınıfının sonu
}//
Miras isim uzayının sonu
|
Şimdi dikkat edilmesi gereken noktaları sıralayalım:
I.
Abstaract (soyut)
sınıftan yeni bir sınıf türetilemez. Örneğimizde person sınıfı abstract sınıftır
ve new anahtar sözcüğü kullanılarak yeni nesne oluşturulmaz.
II.
Abstract metodların
mutlaka içleri boş olarak yaratılır ve türetildikleri
sınıflarda (en az bir sınıf türetilmek zorunda) mutlaka
içleri override anahtar sözcüğü kullanılarak doldurulur.
III.
Bir sınıftan
miras yolu ile başka bir sınıf türetileceği zaman temel sınıf(base class) illa
ki abstract anahtar sözcüğü ile tanımlanmak zorunda değildir. (Eğer abstract
metod içermiyorsa.)
Not: Yukarıda kodlarını yazdığım sınıfların
basit bir kullanımını içeren Miras adındaki projeyi indirmek için buraya
tıklayabilirsiniz. Bu sayede kafalarda hiçbir soru işareti kalmasın istiyorum.
Projeyi çalıştırdığınız zaman bir windows form’u gelecek. Bu formun üzerinde
iki tane buton var.
Student Action butonunu tıklarsanız Student
sınıfının içindeki makeAction metodu çalışır. Daha sonra da windows formu
yaratıldıktan hemen sonra yaratılan student nesnesinin Name, Age, Gender
değişkenleri bir mesaj kutusu aracılığıyla görüntülenir.
Teacher Action butonunu tıklarsanız Teacher
sınıfının içindeki makeAction metodu çalışır. Daha sonra da windows formu
yaratıldıktan hemen sonra yaratılan teacher nesnesinin Unvan, Name, Age, Gender
değişkenleri bir mesaj kutusu aracılığıyla görüntülenir.
Kafanıza takılan sorular için mail adresim
[email protected]
Aytaç ÖZAY
Ege Üniversitesi
Bilgisayar Mühendisliği
Makale:
C#’ta Inheritance(Miras) Kavramı C#, Visual C# ve .NET Aytaç Özay
|
|
|
-
-
Eklenen Son 10
-
Bu Konuda Geçmiş 10
Bu Konuda Yazılmış Yazılmış 10 Makale Yükleniyor
Son Eklenen 10 Makale Yükleniyor
Bu Konuda Yazılmış Geçmiş Makaleler Yükleniyor
|
|