17 Eylül 2015 Perşembe

Multiple Inheritance

Multiple Inheritance
C#'ta multiple inheritance yok. Ancak multiple interface inheritance halen yapılabilir.

Eğer Metod İsmi Çakışırsa Ne Olur
Şöyle iki arayüzümüz olsun
interface calc1
{
    int addsub(int a, int b);
}
interface calc2
{
    int addsub(int x, int y);
}
Bu durumda kalıtan sınıfta tek bir metod tanımlamak yeterli.
class Calculation : calc1, calc2
{
    public int addsub(int a, int b)
    {...}
}
Explicit Interface Implementation
Eğer illaki sınıfımız her bir metodu ayrı ayrı kullansın istiyorsak şöyle yapmamız lazım.
class Calculation : calc1, calc2
{
 
    public int calc.1addsub(int a, int b)
    {...}

    public int calc2.addsub(int x, int y)
    {...}
}
Bu metodlara erişmek için sınıfı doğru arayüze cast etmek gerekir.
public void ShowBoth()
{
    Console.WriteLine(((calc1)this).addsub(5, 3)); // 8
    Console.WriteLine(((calc2)this).addsub(5, 3)); // 2
}







Hiç yorum yok:

Yorum Gönder