Türetilmiş sınıftan bir nesne oluşturduğumuz da önce temel sınıfın yapıcı metodu sonra da türetilmiş sınıfın yapıcı metodu çalışacaktır.
class A { public A() { Console.WriteLine("Temel sınıfın yapıcı metodu çalıştı."); } } class B:A { public B() { Console.WriteLine("Türetilmiş sınıfın yapıcı metodu çalıştı."); } }
A temel sınıf, B ise türetilmiş sınıftır. Bu yüzden B sınıfından bir nesne oluşturduğumuz da (B nesne=new B();) önce A sınıfının yapıcı metodu sonra da B sınıfının yapıcı metodu çalışacaktır. Ekran çıktısı;
Temel sınıfın yapıcı metodu çalıştı. Türetilmiş sınıfın yapıcı metodu çalıştı.
Her yapıcı metodun kendi tanımlandığı sınıfın üye elemanları ile ilgili iş yapması gerekir.
base Anahtar Sözcüğü
Türetilmiş sınıf içerisinden temel sınıfın elemanlarına erişmek için base anahtar sözcüğünü kullanırız.
class A { public A(int a, int b) { Console.WriteLine("Temel sınıfın yapıcı metodu çalıştı. Parametreler: {0},{1}", a, b); } } class B : A { public B(int a, int b, int c, int d) : base(a, b) { Console.WriteLine("Türetilmiş sınıfın yapıcı metodu çalıştı. Parametreler: {0},{1}", c, d); } }
A temel sınıf, B ise türetilmiş sınıftır. Temel sınıfın yapıcı metoduna türetilmiş sınıf üzerinden parametre gönderebilmek için base anahtar sözcüğünü kullanırız.
B b = new B(10,15,20,25);
B sınıfından nesne oluştururken girdiğimiz birinci(10) ve ikinci(15) parametreler A sınıfının yapıcı metoduna gönderilecektir. Üçüncü(20) ve dördünce(25) parametreler ise B sınıfının yapıcı metodu içerisinde kullanılacaktır. Ekran çıktısı;
Temel sınıfın yapıcı metodu çalıştı. Parametreleri: 10,15 Türetilmiş sınıfın yapıcı metodu çalıştı. Parametreleri: 20,25
Türetme ile sınıflar arasında hiyerarşik bir yapı sağlanır.
class A { public A(int a) { Console.WriteLine("A Temel sınıfının yapıcı metodu çalıştı. Parametre: {0}", a); } } class B : A { public B(int a, int b) : base(a) { Console.WriteLine("Türetilmiş B sınıfının yapıcı metodu çalıştı. Parametre: {0}", b); } } class C: B { public C(int a, int b,int c) : base(a,b) { Console.WriteLine("Türetilmiş C sınıfının yapıcı metodu çalıştı. Parametre: {0}", c); } }
base anahtar sözcüğü C sınıfında B sınıfını; B sınıfında da A sınıfını temsil eder. C sınıfından bir nesne oluşturduğumuz da önce A sınıfının yapıcı metodu, sonra B sınıfının yapıcı metodu en son da C sınıfının yapıcı metodu çalışacaktır.
C c = new C(10, 15, 20);
C sınıfından nesne oluştururken girdiğimiz birinci(10) ve ikinci(15) parametreler B sınıfının yapıcı metoduna gönderilecektir. Üçüncü(20) parametre ise C sınıfının yapıcı metodu içerisinde kullanılacaktır. B sınıfına gönderilen birinci(10) ve ikinci(15) parametrelerden ilki(10) A sınıfının yapıcı metoduna gönderilecektir ve ikinci(15) parametre de B sınıfı içerisinde kullanılacaktır.
A Temel sınıfının yapıcı metodu çalıştı. Parametre: 10 Türetilmiş B sınıfının yapıcı metodu çalıştı. Parametre: 15 Türetilmiş C sınıfının yapıcı metodu çalıştı. Parametre: 20
Serdar YILMAZ
helal olsun hocam, güzel anlatım kılçıksız
teşekkür
Bir konu ancak bu kadar güzel anlatılabilirdi. Teşekkkürler.
Gayet faydalı ve anlaşılır bir içerik olmuş, teşekkürler
Emeğine sağlık.
çok açıklayıcı olmuş, kaleminize sağlık.
Çok İyi anlatmışsınız Hocam