C# dilinde kalıtım işlemi için iki nokta üst üste yani (:) kullanıyoruz. Örnek: public class ClassAdi:BabaClassAdi{ // şeklinde }
Kalıtım kullanılan küçük sınıf, baba sınıfın public, protected erişim belirleyicili field ve metotlarına new ile nesne üretmeden erişebilir. Örnek kodumuz:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace WPFCSharp.D1 { class Program { static int para; int para2; //Global değişkenler. static void Main(string[] args) { // Konsol projesinde main methodumuz static olduğundan bu metoda çağrılan değişken ve methodlar static olmak zorundadır. Aksi halde o değişkenleri vs. kullanamayız ve hata alırız. //static değişken ve metotlar ramde direkt oluşturulur. para = 50; //para2 static olmadığı için kullanamıyoruz. BankAccount ba = new BankAccount(); Console.WriteLine(ba.AddToBalance(15)); Console.WriteLine(SimpleMath.Add(15.5, 10)); //SimpleMath classı içinde static method olduğundan new ile örneklemeye gerek yoktur. ChildBankAccount childBankAccount = new ChildBankAccount(); childBankAccount.AddToBalance(20); Console.WriteLine(childBankAccount.Balance); //Balance değeri ChildBankAccount classının constractorında 10 olarak verildiğinden AddToBalance metodunda da +=gelen değer şeklinde kullanıldığından ekrana 30 yazacaktır. Console.ReadLine(); } } class SimpleMath { public static double Add(double sayi1, double sayi2) { return sayi1 + sayi2; } } class BankAccount { private double balance; // değişken public double Balance //property { get { if(balance<1000000) //kontrol et return balance; //çağrılan değer için balance değişkeninin değerini gönder return 1000000; } protected set { if(value >0) //bu şekilde dışarıdan gelen atamaların kontrolünü sağlayabiliriz... balance = value;//dışarıdan gelen değeri balance değişkenine ata. } } public double AddToBalance(double balanceToBeAdded) { balance += balanceToBeAdded; return balance; } } class ChildBankAccount : BankAccount { public ChildBankAccount() { Balance = 10; // set kısmını protected yaptık. inheritance kullandığımızda bu erişim tipi ile set, get yapabilir değişkenlere ve metotlara erişebiliriz. } } }
Inheritance kısmına odaklanalım:
class ChildBankAccount : BankAccount { public ChildBankAccount() { Balance = 10; // set kısmını protected yaptık. inheritance kullandığımızda bu erişim tipi ile set, get yapabilir değişkenlere ve metotlara erişebiliriz. } } }
Veri ataması yapılan Balance Propertyi inceleyelim:
public double Balance //property { get { if(balance<1000000) //kontrol et return balance; //çağrılan değer için balance değişkeninin değerini gönder return 1000000; } protected set { if(value >0) //bu şekilde dışarıdan gelen atamaların kontrolünü sağlayabiliriz... balance = value;//dışarıdan gelen değeri balance değişkenine ata. } }

KALITIM ÖRNEĞİ
Bir cevap yazın