Trend konuların olduğu, Türkiye'de en çok arama yapılan konular ile ilgili blog:
http:trendkonular.blogspot.com
Facebook sayfasını aşağıdan takip edip haberdar olabilirsiniz:
https://www.facebook.com/trendkonulardunya
using System;
namespace Polymorphism
{
class A
{
public void Foo() { Console.WriteLine("A::Foo()"); }
}
class B : A {}
class Test
{
static void Main(string[] args)
{
A a = new A();
a.Foo(); // çıktı --> "A::Foo()"
B b = new B();
b.Foo(); // çıktı--> "A::Foo()"
}
}
}
Yukardaki kod bloğunu incelediğimizde Bir A classı ve bu classtan türemiş bir B classı görmekteyiz. A classı kendi içerisinde Foo adlı bir metod içermekte ve bu metod ekrana bir yazı bastırıyor. B classı da A classından türediği için, A classı içerisinde tanımlanmış olan Foo metodunu çağırıp kullanabilir. Ekran çıktılarını kod içerisinden de görebiliriz.using System; namespace Polymorphism { class A { public virtual void Foo() { Console.WriteLine("A::Foo()"); } } class B : A { public override void Foo() { Console.WriteLine("B::Foo()"); } } class Test { static void Main(string[] args) { A a; B b; a = new A(); b = new B(); a.Foo(); // çıktı--> "A::Foo()" b.Foo(); // çıktı--> "B::Foo()" a = new B(); a.Foo(); // çıktı--> "B::Foo()" } } }
A a = new B();
a.Foo(); // çıktı--> "B::Foo()"
Ancak yukarıdaki gibi A classının instanceını alırsak, çıktımız B classı içerisinde override etmiş olduğumuz metodun içerisindeki işlemler sonucu elde edilen çıktı olacaktır.