2014-04-15 46 views
-1

我想驗證我是否可以投出抽象和接口類。我嘗試了以下方法,但無法得到它,所以我認爲我會以錯誤的方式去解決這個問題。我可以施放抽象和接口類(如果我可以比將如何施展)?

+0

請出示你已經嘗試了什麼。而且,班級結構也很有趣。你想達到什麼目的? – Markus

+0

我在谷歌搜索了這個問題,但沒有得到任何指定的答案,所以我在這裏提出這個問題,這就是爲什麼我得到了正確的答案。 –

回答

0

你的問題有點含糊。你的問題可能有很多種可能性。我曾試圖把它們送到這裏。看看它是否符合你的需求。如果沒有,那麼請評論類結構的

大廈

public abstract class MyAbClass 
{ 
    public abstract void MyM1(); 
} 

public interface IMyInterface 
{ 
    void MyM2(); 
} 

public class MyConcretClass1 : MyAbClass 
{ 
    public override void MyM1() 
    { 
     //Your implementation here 
    } 
} 

public class MyConcretClass2 : IMyInterface 
{ 
    public void MyM2() 
    { 
     //Your implementation here 
    } 
} 

可能性

//Following are the possibilities 
//This can be done in some other class and passed to some other method 
//maybe a factory pattern 
MyAbClass cls1 = new MyConcretClass1(); 

//Will call method of MyConcretClass1 
cls1.MyM1(); 

if (cls1 is MyConcretClass1) 
{ 
    //Do casting here 
} 

var cls2 = cls1 as MyConcretClass1; 

if (cls2 != null) 
{ 
    //Do your stuff here 
} 


//This can be done in some other class and passed to some other method 
//maybe a factory pattern 
IMyInterface cls3 = new MyConcretClass2(); 

//Will call method of MyConcretClass2 
cls3.MyM2(); 

if (cls3 is MyConcretClass2) 
{ 
    //Do casting here 
} 

var cls4 = cls3 as MyConcretClass2; 

if (cls4 != null) 
{ 
    //Do your stuff here 
} 

希望這有助於

相關問題