0

我是编程新手,当我了解“继承”(从现有类派生新类的过程)时,我正在学习 OOP 概念。

当我在 asp.net 中打开一个新项目时,我发现了这个,

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

这意味着该类继承自page

当我尝试删除System.Web.UI.Page某些代码时显示错误(例如:)IsPostback

但是当我需要从父类访问方法或成员变量时,我必须创建一个实例,不是吗?

但是如果不创建实例,这段代码是如何工作的呢?

对不起,如果我错了..

4

4 回答 4

1

创建派生类的实例时,首先创建基类的“实例”。也就是说,派生实例包含了基础实例中的所有内容。实际上,派生实例基类的实例。

请注意,这并不特定于 ASP.NET。ASP.NET 页面是类,所以这只是普通的 OO。

于 2013-08-29T05:06:53.580 回答
1

如果您不熟悉编程和 OOP 概念,那么 OOP 具有以下主要支柱。

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

您需要学习所有这些概念才能以面向对象的方式编写任何程序。

就您的问题而言。是的,您的类是从页面继承的。如果删除System.Web.UI.Page,则无法访问父类的方法或属性。因为继承被称为IS A关系。

因此,如果您从那里继承Class AClass B则可以访问 Class B 中的 Class A 的所有方法或属性。但请记住,您可以访问未定义为Private(访问修饰符)的父类的属性或方法。

有关 OOP 概念的详细信息,请参阅。http://msdn.microsoft.com/en-us/library/ms173149.aspx

了解访问修饰符

于 2013-08-29T05:25:26.950 回答
0

当您的类从另一个类继承时,它会获取父类的所有属性和方法,并且可以像使用它们一样使用它们,也可以为这些方法提供新的实现。在这种情况下,您不需要创建类的实例,仅当您需要创建类类型的对象并使用其功能时才需要实例化......我建议您清楚地学习基本的 C# 然后继续ASP.Net 任何此类技术,因为所有这些技术都基于基本概念。

PS:这家伙得到了关于这些技术的很好的教程列表.. http://www.youtube.com/user/kudvenkat/videos?flow=grid&view=1

于 2013-08-29T05:00:26.557 回答
0

一个简单的代码片段来演示继承可访问性

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
        }
    }
}
于 2013-08-29T05:38:00.937 回答