2013-08-29 104 views
0

我是編程新手,剛纔我瞭解了有關「繼承」(從已有類中派生新類的過程)的OOP概念。ASP.Net中的繼承頁面

當我打開一個新的項目在asp.net我發現這一點,

public partial class Master_Pages_Email_Template : System.Web.UI.Page 
{ 

這意味着從page繼承類?

當我試圖刪除System.Web.UI.Page某些代碼顯示錯誤(例如:IsPostback)。

但是,當繼承時,我需要從父類訪問方法或成員變量,我不得不創建一個實例嗎?

但是沒有創建實例該代碼如何工作?

很抱歉,如果我錯了..

+0

我可以回答你的問題,但它需要我解釋那麼多[面向對象的條件(http://en.wikipedia.org/wiki/List_of_object-oriented_programming_terms)像[輔助功能](HTTP:// en.wikipedia.org/wiki/Member_visibility#Member_accessibility)等。我建議你通過一些基本的面向對象的概念,慢慢地你會開始吸收他們自己。 – Imran

+0

Thankyou,但它會有所幫助,如果你扔一些燈... – LearningToCode

+0

好,我寫了一個簡單的答案,如果萬一它對你有幫助 – Imran

回答

0

當你的類從另一個類它得到所​​有的父類的屬性和方法,並且可以使用他們,如果他們自己的繼承,也可以提供這些新的實現方法。在這種情況下,您不需要創建類的實例,只有當您需要創建類的對象並使用它的功能時才需要實例化...我建議您清楚地學習基本C#,然後繼續ASP.Net任何這樣的技術,因爲所有的都是基於基本概念..

PS:這傢伙得了這些技術教程的一個好名單.. http://www.youtube.com/user/kudvenkat/videos?flow=grid&view=1

+0

Thankyou ...真的有用 – LearningToCode

1

當一個派生類的一個實例是創建後,首先創建基類的「實例」。也就是說,派生實例包含本來在基礎實例中的所有內容。實際上,派生實例是基類的一個實例。

請注意,這不是特定於ASP.NET。 ASP.NET頁面是類,所以這只是正常的OO。

+0

因此,如果不創建實例,我們如何使用所有的屬性和方法? – LearningToCode

+0

基本上,創建派生類的實例會創建一個基類的實例。 –

+0

是的,我很清楚,派生類的一個實例也創建了一個基類的實例,但在這裏,'公共部分類Master_Pages_Email_Template:System.Web.UI.Page {'我們沒有創建實例,那麼如何我們是否能夠訪問屬性,如Postback – LearningToCode

1

如果您是編程和OOP概念的新手,那麼OOP具有以下主要支柱。

1. Inheritance 
2. encapsulation 
3. polymorphism 
4. Abstraction 

您需要學習所有這些概念才能以面向對象的方式編寫任何程序。

就你的問題而言。是的,你的課是從頁面繼承的。如果你刪除System.Web.UI.Page那麼你不能訪問父類的方法或屬性。因爲繼承被稱爲IS A關係。

所以,如果你繼承Class BClass A那麼你就可以訪問所有方法或B級A級的性能,但千萬記住,你可以訪問屬性或未被定義爲Private(訪問修飾符)父類的方法。

有關OOP概念的詳細信息,請參閱。 http://msdn.microsoft.com/en-us/library/ms173149.aspx

To understans Access Modifiers

0

一個簡單的代碼段來演示InheritanceAccessibility

public class Base 
{ 
    private int PrivateProperty { get; set; } 
    protected int ProtectedProperty { get; set; } 
    public bool PublicProperty { get; private set; } 
} 

public class Derived : Base 
{ 
    public void A_Method_Which_Need_BaseProperties() 
    { 
     if (this.PublicProperty) //Derived can access (only Read) Base PublicProperty 
     { 
      this.ProtectedProperty = 1; //Derived can access (Both Read and Write) Base ProtectedProperty 
      //this.PrivateProperty = 2; //You can't do this. Derived can not access Base PrivateProperty 
     } 
    } 
}