*256 Bit SSL Sertifikası * Full Mobil Uyumlu * Full SEO Uyumlu
İsterseniz Mobil Uygulama Seçeneğiyle
Giriş
Nesne yönelimli programlama (NYP) kavramı günümüzde oldukça yaygın olarak kullanılmaktadır. Bu programlama modelinde programın temeli nesneler ve nesnelerin birbirleriyle etkileşimi üzerine kuruludur. Nesne temelli programlama yaparken iki temel araç olarak kalıtım ve polimorfizm kullanılır. Bu yazıda C# ile kalıtım ve polimorfizm kullanarak nasıl nesne yönelimli programlama yapılabileceğini örnekler üzerinden detaylı şekilde inceleyeceğiz.
Kalıtım Nedir?
Kalıtım, bir sınıfın başka bir sınıftan özelliklerini, metodlarını ve alanlarını almasına olanak tanıyan bir özelliktir. Bu özellik, kod tekrarını önler ve kod yeniden kullanımını kolaylaştırır. Kalıtım yaparken temel sınıfın özelliklerini aldığımız sınıf, alt sınıf olarak adlandırılır. Alt sınıf, üst sınıfın tüm özelliklerine sahip olduğu için onu genişletir veya değiştirir. Kalıtım yaparken alt sınıfın üst sınıftan aldığı özellikler dışında kendine has özellikleri de olabilir.
Örnek
Aşağıdaki örnekte kalıtım kullanarak Ürün sınıfından T-Shirt sınıfı oluşturalım.
```
class Ürün
{
string ad;
double fiyat;
int yıl;
public string Ad { get => ad; set => ad = value; }
public double Fiyat { get => fiyat; set => fiyat = value; }
public int Yıl { get => yıl; set => yıl = value; }
}
class T_Shirt : Ürün
{
string beden;
string renk;
public string Beden { get => beden; set => beden = value; }
public string Renk { get => renk; set => renk = value; }
}
```
Yukarıdaki örnekte Ürün sınıfı oluşturuldu ve T-Shirt sınıfı bu sınıftan kalıtım yapılarak, ad, fiyat, yıl özelliklerini ve set/get metotlarını miras aldı. T-Shirt sınıfı kendine has “Beden” ve “Renk” özelliklerine sahip.
Polimorfizm Nedir?
Polimorfizm, bir nesnenin birden fazla nesne gibi davranabilmesini sağlayan bir özelliktir. Polimorfizm kullanarak, aynı arayüzü olan farklı nesneleri kullanabilen bir sistem geliştirebiliriz. Polimorfizm, kod tekrarını azaltır ve kodun daha genel ve anlaşılır olmasını sağlar.
Örnek
Polimorfizm kullanarak, Ürün sınıfına ait bir dizide tüm alt sınıfları depolayabileceğimiz bir örnek için aşağıdaki örneği inceleyelim.
```
class Program
{
static void Main(string[] args)
{
Ürün ürün1 = new T_Shirt();
ürün1.Ad = \"Polo T-Shirt\";
ürün1.Fiyat = 45.99;
ürün1.Yıl = 2021;
Ürün ürün2 = new Kalem();
ürün2.Ad = \"Bic Kalem\";
ürün2.Fiyat = 2.50;
ürün2.Yıl = 2020;
Ürün[] ürünler = new Ürün[2] { ürün1, ürün2 };
foreach (Ürün ürün in ürünler)
{
Console.WriteLine(ürün.Ad + \" \" + ürün.Fiyat + \" \" + ürün.Yıl);
}
Console.ReadLine();
}
}
class Kalem : Ürün
{
int kalemKalinligi;
string kalemUcTipi;
public int Kalınlik { get => kalemKalinligi; set => kalemKalinligi = value; }
public string UcTipi { get => kalemUcTipi; set => kalemUcTipi = value; }
}
```
Yukarıdaki örnekte, Ürün sınıfına ait bir dizi oluşturduk ve bu diziye T-Shirt ve Kalem sınıflarından nesneler atadık. Döngü içinde her bir nesnenin Ad, Fiyat ve Yıl özelliklerini yazdırdık. Bu örnekte polimorfizm kullanarak, Ürün sınıfının özelliklerini kullanan farklı alt sınıfların nasıl birlikte çalışabileceğini gösterdik.
Sık Sorulan Sorular
1) Kalıtım ve Polimorfizm arasındaki fark nedir?
Kalıtım, bir sınıfın diğer bir sınıftan metot, özellik ve alanlarını almasına olanak tanırken, polimorfizm, bir nesnenin birden fazla nesne gibi davranabilmesini sağlar.
2) Bir üst sınıfın özelliklerini miras almayan alt sınıf yazılabilir mi?
Evet, bir üst sınıfın özelliklerini miras almayan alt sınıf yazılabilir. Bu durumda alt sınıfın sadece kendine ait özellikleri olur.
3) Bir alt sınıf, üst sınıfın özelliklerini değiştirebilir mi?
Evet, bir alt sınıf, üst sınıfın özelliklerini değiştirebilir. Örneğin, bir alt sınıf, üst sınıfın özelliğini kapsayan bir metodu değiştirebilir.
4) C# programlama dili nesne yönelimli programlama yapmak için ne kadar uygundur?
C# programlama dili, nesne yönelimli programlama yapmak için oldukça uygun bir dil olarak kabul edilir. Bu dilde kalıtım ve polimorfizm gibi özellikler oldukça kolay bir şekilde kullanılabilir."
Giriş
Nesne yönelimli programlama (NYP) kavramı günümüzde oldukça yaygın olarak kullanılmaktadır. Bu programlama modelinde programın temeli nesneler ve nesnelerin birbirleriyle etkileşimi üzerine kuruludur. Nesne temelli programlama yaparken iki temel araç olarak kalıtım ve polimorfizm kullanılır. Bu yazıda C# ile kalıtım ve polimorfizm kullanarak nasıl nesne yönelimli programlama yapılabileceğini örnekler üzerinden detaylı şekilde inceleyeceğiz.
Kalıtım Nedir?
Kalıtım, bir sınıfın başka bir sınıftan özelliklerini, metodlarını ve alanlarını almasına olanak tanıyan bir özelliktir. Bu özellik, kod tekrarını önler ve kod yeniden kullanımını kolaylaştırır. Kalıtım yaparken temel sınıfın özelliklerini aldığımız sınıf, alt sınıf olarak adlandırılır. Alt sınıf, üst sınıfın tüm özelliklerine sahip olduğu için onu genişletir veya değiştirir. Kalıtım yaparken alt sınıfın üst sınıftan aldığı özellikler dışında kendine has özellikleri de olabilir.
Örnek
Aşağıdaki örnekte kalıtım kullanarak Ürün sınıfından T-Shirt sınıfı oluşturalım.
```
class Ürün
{
string ad;
double fiyat;
int yıl;
public string Ad { get => ad; set => ad = value; }
public double Fiyat { get => fiyat; set => fiyat = value; }
public int Yıl { get => yıl; set => yıl = value; }
}
class T_Shirt : Ürün
{
string beden;
string renk;
public string Beden { get => beden; set => beden = value; }
public string Renk { get => renk; set => renk = value; }
}
```
Yukarıdaki örnekte Ürün sınıfı oluşturuldu ve T-Shirt sınıfı bu sınıftan kalıtım yapılarak, ad, fiyat, yıl özelliklerini ve set/get metotlarını miras aldı. T-Shirt sınıfı kendine has “Beden” ve “Renk” özelliklerine sahip.
Polimorfizm Nedir?
Polimorfizm, bir nesnenin birden fazla nesne gibi davranabilmesini sağlayan bir özelliktir. Polimorfizm kullanarak, aynı arayüzü olan farklı nesneleri kullanabilen bir sistem geliştirebiliriz. Polimorfizm, kod tekrarını azaltır ve kodun daha genel ve anlaşılır olmasını sağlar.
Örnek
Polimorfizm kullanarak, Ürün sınıfına ait bir dizide tüm alt sınıfları depolayabileceğimiz bir örnek için aşağıdaki örneği inceleyelim.
```
class Program
{
static void Main(string[] args)
{
Ürün ürün1 = new T_Shirt();
ürün1.Ad = \"Polo T-Shirt\";
ürün1.Fiyat = 45.99;
ürün1.Yıl = 2021;
Ürün ürün2 = new Kalem();
ürün2.Ad = \"Bic Kalem\";
ürün2.Fiyat = 2.50;
ürün2.Yıl = 2020;
Ürün[] ürünler = new Ürün[2] { ürün1, ürün2 };
foreach (Ürün ürün in ürünler)
{
Console.WriteLine(ürün.Ad + \" \" + ürün.Fiyat + \" \" + ürün.Yıl);
}
Console.ReadLine();
}
}
class Kalem : Ürün
{
int kalemKalinligi;
string kalemUcTipi;
public int Kalınlik { get => kalemKalinligi; set => kalemKalinligi = value; }
public string UcTipi { get => kalemUcTipi; set => kalemUcTipi = value; }
}
```
Yukarıdaki örnekte, Ürün sınıfına ait bir dizi oluşturduk ve bu diziye T-Shirt ve Kalem sınıflarından nesneler atadık. Döngü içinde her bir nesnenin Ad, Fiyat ve Yıl özelliklerini yazdırdık. Bu örnekte polimorfizm kullanarak, Ürün sınıfının özelliklerini kullanan farklı alt sınıfların nasıl birlikte çalışabileceğini gösterdik.
Sık Sorulan Sorular
1) Kalıtım ve Polimorfizm arasındaki fark nedir?
Kalıtım, bir sınıfın diğer bir sınıftan metot, özellik ve alanlarını almasına olanak tanırken, polimorfizm, bir nesnenin birden fazla nesne gibi davranabilmesini sağlar.
2) Bir üst sınıfın özelliklerini miras almayan alt sınıf yazılabilir mi?
Evet, bir üst sınıfın özelliklerini miras almayan alt sınıf yazılabilir. Bu durumda alt sınıfın sadece kendine ait özellikleri olur.
3) Bir alt sınıf, üst sınıfın özelliklerini değiştirebilir mi?
Evet, bir alt sınıf, üst sınıfın özelliklerini değiştirebilir. Örneğin, bir alt sınıf, üst sınıfın özelliğini kapsayan bir metodu değiştirebilir.
4) C# programlama dili nesne yönelimli programlama yapmak için ne kadar uygundur?
C# programlama dili, nesne yönelimli programlama yapmak için oldukça uygun bir dil olarak kabul edilir. Bu dilde kalıtım ve polimorfizm gibi özellikler oldukça kolay bir şekilde kullanılabilir."
*256 Bit SSL Sertifikası * Full Mobil Uyumlu * Full SEO Uyumlu
İsterseniz Mobil Uygulama Seçeneğiyle