In an existing ASP.NET application, I have a base class containing a `Page_Load` method:

```
public class PageBaseClass : System.Web.UI.Page {
    protected virtual void Page_Load(object sender, EventArgs e) {
        // do stuff...
    }
}

```

I have an actual page which inherits from this base class. However, it doesn't override the existing `Page_Load` method, but declares a new one like this:

```
public class ActualPage : PageBaseClass {
    protected void Page_Load(object sender, EventArgs e) {
        // do other stuff...
    }
}

```

The compiler gives me a warning that the `Page_Load` method in the actual page is hiding the existing `Page_Load` method. So effectively, there are two seperate `Page_Load` methods, since the old one wasn't overridden, but hidden.

Now my question is, what does the ASP.NET architecture do in it's lifecycle in such a situation? Which one is being called? Or are they both being called?

*Note: I know this is bad design, I'm not sure what the original author had in mind, I'm just trying to understand what's happening and how this will affect the logic of the system.*