Bu eğitimde öğreneceksiniz-
- Miras
- Polimorfizm
C # 'da Kalıtım nedir?
Kalıtım, C # 'da önemli bir kavramdır. Kalıtım, üst sınıfları ve alt sınıfları tanımladığınız bir kavramdır.
Alt sınıflar, üst sınıfın yöntemlerini ve özelliklerini miras alır, ancak aynı zamanda, gerekirse yöntemlerin davranışını da değiştirebilirler. Çocuk sınıfı, gerekirse kendi yöntemlerini de tanımlayabilir.
Bu eylemi görürsek daha iyi anlayacaksınız.
Şimdi kalıtım kavramını kodumuza nasıl dahil edebileceğimize bakalım.
Adım 1) İlk adım, Tutorial sınıfımızın kodunu değiştirmektir. Bu adımda, aşağıdaki kodu Tutorial.cs dosyasına ekliyoruz.
Şimdi hem TutorialID hem de TutorialName alanına 'korumalı' erişim değiştiricisini eklememiz gerektiğini unutmayın.
Bu erişim değiştiriciden Erişim Değiştirici eğitiminde bahsettiğimizi unutmayın. Burada buna sahip olmanın amacını görebilirsiniz. Yalnızca bu erişim değiştiriciye (korumalı) sahip olduğunuzda, alt sınıf üst sınıfın alanlarını kullanabilir.
Adım 2) İkinci adım, yeni çocuk sınıfımızı eklemektir. Bu sınıfın adı "Guru99Tutorial" olacaktır. Bu adımda, aşağıdaki kodu Tutorial.cs dosyasına ekliyoruz. Kod, Eğitim sınıfı tanımından sonra yerleştirilmelidir.
Kod Açıklaması: -
- İlk adım, Guru99Tutorial alt sınıfını oluşturmaktır. Ayrıca bu sınıfın Tutorial sınıfının bir çocuk sınıfı olacağını da belirtmemiz gerekiyor. Bu, ':' anahtar sözcüğü ile yapılır.
- Ardından, RenameTutorial adlı bir yöntem tanımlıyoruz. EğitimAdı alanını yeniden adlandırmak için kullanılacaktır. Bu yöntem, Öğreticinin yeni adını içeren bir dize değişkenini kabul eder.
- Daha sonra pNewName parametresini TutorialName alanına atadık.
Not : - "Guru99Tutorial" sınıfında TutorialName alanını tanımlamamış olsak da, bu alana hala erişebiliyoruz. Bunun nedeni "Guru99Tutorial" ın Tutorial sınıfının alt sınıfı olmasıdır. Ve Tutorial sınıfının alanlarını korumalı yaptığımız için bunlara bu sınıf tarafından erişilebilir.
Adım 3) Son adım, ana Program.cs dosyamızı değiştirmektir. Konsol uygulamamızda, Guru99Tutorial sınıfının bir nesnesini yapacağız. Bu nesne ile RenameTutorial yöntemini çağıracağız. Daha sonra GetTutorial yönteminin yardımıyla TutorialName alanını görüntüleyeceğiz.
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace DemoApplication{class Tutorial{protected int TutorialID;protected string TutorialName;public void SetTutorial(int pID,string pName){TutorialID=pID;TutorialName=pName;}public String GetTutorial(){return TutorialName;}}public class Guru99Tutorial:Tutorial{public void RenameTutorial(String pNewName){TutorialName=pNewName;}static void Main(string[] args){Guru99Tutorial pTutor=new Guru99Tutorial();pTutor.RenameTutorial(".Net by Guru99");Console.WriteLine(pTutor.GetTutorial());Console.ReadKey();}}}
Kod Açıklaması: -
- İlk adım, Guru99Tutorial sınıfı için bir nesne oluşturmaktır. Bu, 'yeni' anahtar kelime aracılığıyla yapılır. Bu sefer Tutorial sınıfının bir nesnesini oluşturmadığımızı unutmayın.
- TutorialName alanını değiştirmek için Guru99Tutorial sınıfının RenameTutorial yöntemini kullanıyoruz. ".Net by Guru99" dizesini RenameTutorial yöntemine geçiriyoruz.
- Daha sonra GetTutorial yöntemini çağırıyoruz. Bu yöntem Guru99Tutorial sınıfında tanımlanmamış olsa da, bu yönteme yine de erişebileceğimizi unutmayın. GetTutorial yönteminin çıktısı daha sonra Console.WriteLine yöntemi aracılığıyla konsola görüntülenir.
Yukarıdaki kod doğru girilirse ve program başarıyla çalıştırılırsa, aşağıdaki çıktı görüntülenecektir.
Çıktı:
Çıktıdan, TutorialName alanının ".Net by Guru99" olarak yeniden adlandırıldığını açıkça görebiliriz. Bu, alt sınıf tarafından çağrılan RenameTutorial yöntemiyle mümkün olmuştur.
C # 'da Polimorfizm nedir?
Polimorfizm, bir ismin birçok biçime sahip olabileceği bir OOP kavramıdır.
Örneğin, iletişim için bir akıllı telefonunuz var. Seçtiğiniz iletişim modu herhangi bir şey olabilir. Bu bir arama, bir metin mesajı, bir resimli mesaj, posta vb. Olabilir. Dolayısıyla amaç ortak olan iletişimdir, ancak yaklaşımları farklıdır. Buna Polimorfizm denir.
Bu eylemi görürsek daha iyi anlayacaksınız.
Şimdi Polimorfizm kavramını kodumuza nasıl dahil edebileceğimizi görelim.
Adım 1) İlk adım, Tutorial sınıfımızın kodunu değiştirmektir. Bu adımda, aşağıdaki kodu Tutorial.cs dosyasına ekliyoruz.
Kod Açıklaması: -
1 & 2) İlk adım, önceki örneklerimizle aynıdır. SetTutorial yönteminin tanımını olduğu gibi tutuyoruz.
3) Bu yöntem, TutorialID ve TutorialName'i pID ve pName parametrelerine göre ayarlar.
4) Burası, aynı SetTutorial adıyla yeni bir metot eklediğimiz sınıfımızda bir değişiklik yaptığımız yerdir. Sadece bu sefer sadece pName olan bir parametreyi geçiyoruz. Bu yöntemde, TutorialName alanını sadece pName olarak ayarlıyoruz.
Adım 2) Son adım, ana Program.cs dosyamızı değiştirmektir. Konsol uygulamamızda, Guru99Tutorial sınıfının bir nesnesini yapacağız.
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace DemoApplication{class Tutorial{public int TutorialID;public string TutorialName;public void SetTutorial(int pID,string pName){TutorialID=pID;TutorialName=pName;}public void SetTutorial(string pName){TutorialName=pName;}public String GetTutorial(){return TutorialName;}static void Main(string[] args){Tutorial pTutor=new Tutorial();pTutor.SetTutorial(1,"First Tutorial");Console.WriteLine(pTutor.GetTutorial());pTutor.SetTutorial("Second Tutorial");Console.WriteLine(pTutor.GetTutorial());Console.ReadKey();}}}
Kod Açıklaması: -
- İlk adımda SetTutorial metodunu 2 parametre ile kullanıyoruz. Hem TutorialID hem de TutorialName'i bu yönteme geçirdiğimiz yer.
- İkinci adımda, şimdi SetTutorial metodunu sadece bir parametre ile çağırıyoruz. Sadece TutorialName'i bu yönteme geçiriyoruz.
Yukarıdaki kod doğru girilirse ve program çalıştırılırsa aşağıdaki çıktı görüntülenir. Eğitici Adı ile birlikte Eğitim Kimliğini de getirmek isterseniz, aşağıdaki adımı izlemelisiniz.
- Public int GetTutorialID adlı ayrı bir yöntem oluşturun
- Bu yöntemde "return TutorialID" kod satırını yazın. Bu, Eğitim Kimliğini çağıran programa döndürmek için kullanılabilir.
Çıktı:
Çıktıdan, her iki yöntemin de başarıyla çağrıldığını açıkça görebiliriz. Bu nedenle, konsola "First Tutorial" ve "Second Tutorial" dizeleri gönderildi.
Özet
- Kalıtım, bir alt sınıfın üst sınıfın alanlarını ve yöntemlerini miras aldığı yerdir. Alt sınıf daha sonra kendi yöntemlerini de tanımlayabilir.
- Polimorfizm, bir ismin birçok biçime sahip olabileceği bir OOP kavramıdır.