2010-09-02 77 views
1

我想繼承多個類有沒有什麼方法?我們可以在asp.net aspx頁面上繼承更多的類嗎?

例如在的Login.aspx頁:

<%@ page language="c#" codefile="nishant.aspx.cs" autowireup="true" inherit="nishant"%> 

現在隱藏文件的代碼

nishant.aspx.cs:

class nishant 
{ 
    //code... 
} 

class bill 
{ 
    //code..... 
} 

現在,我要繼承類法案那我該怎麼辦?

+0

令人遺憾的是C#不支持多繼承 – StuartLC 2010-09-02 11:18:27

+0

,但先生有沒有什麼方法可以用我們可以使用的bill方法? – 2010-09-02 12:05:58

回答

4

.NET不支持多繼承,這包括asp.net,所以不行,這是不可能的。

如果您想共享功能,您可以讓nishant類繼承bill類或其他方法。然後,頁面可以繼承繼承類並訪問兩者的功能。

另一種選擇是從一個類繼承並實現一個接口(或幾個接口),但是可以實現多個接口的事實與多重繼承不同。

還有其他的事情可以做,取決於你究竟想要達到什麼(我主要考慮composition與繼承)。

1

不可以.Net本質上只允許單一繼承。最好你可以實現一個接口,但你仍然需要在你的尼桑類中獲得代碼,或者將功能提取到你的賬單類中並進行函數調用。

雖然在你提到的情況下,這實際上並不是多重繼承。你的nishant類必須是System.Web.UI.Page類型。所以如果你創建一個帶有「賬單類」的庫,你可以繼承它。

public class bill : System.Web.UI.Page 
{ 
    // Your custom code 
} 

/// 

public class nishant : bill 
{ 

} 
1

.NET不支持多重繼承(一個繼承自兩個或更多類的類)。

但是,您可以擁有任意數量的父類。看看裝飾者模式。

或者使用接口,你可以有多個接口。

2

不允許多繼承。唯一的辦法是:

public class Bill : Page 
{ } 

public class Nishant : Bill 
{ } 

而是你應該考慮一下你的設計。通常不需要這種方法。

相關問題