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
Eğer illaki sınıfımız her bir metodu ayrı ayrı kullansın istiyorsak şöyle yapmamız lazım.
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 ImplementationEğ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