Из JLS Java SE 7 Edition §15.11.1:
Отсутствие динамического поиска для доступа к полям позволяет программам эффективно запускаться с помощью простых реализаций. Возможность позднего связывания и переопределения доступна, но только при использовании методов экземпляра.
blockquote>Ответы Оливера Чарльворта и Марко Топольника верны, я хотел бы подробнее рассказать о почему часть вопроса:
В Java члены класса являются доступными в соответствии с типом ссылки, а не типом фактического объекта. По той же причине, если у вас есть
someOtherMethodInB()
в классеB
, вы не сможете получить к нему доступ изaRef
после запускаaRef = b
. Идентификаторы (т. Е. Имена классов, переменных и т. Д.) Разрешаются во время компиляции, и поэтому компилятор полагается на ссылочный тип для этого.Теперь в вашем примере при запуске
System.out.println(aRef.intVal);
он печатает значениеintVal
, определенный вA
, потому что это тип ссылки, которую вы используете для доступа к ней. Компилятор видит, чтоaRef
имеет типA
, и этоintVal
, к которому он будет обращаться. Не забывайте, что у вас есть оба поля в экземплярахB
. JLS также имеет пример, похожий на ваш, «15.11.1-1. Статическая привязка для доступа к полям», если вы хотите взглянуть.Но почему методы ведут себя по-другому? Ответ заключается в том, что для методов Java использует позднюю привязку. Это означает, что во время компиляции он находит наиболее подходящий метод для поиска во время выполнения. Поиск включает случай переопределения метода в некотором классе.
Я нашел, что эта диаграмма довольно полезна. Предоставляет краткое описание относительно того, что делает часть... John-Sheehan События Жизненного цикла ASP.NET
У меня есть это на моей плате гвоздя. Полезный, когда Ваши страницы Master использования.
Это - "исходный" обзор MSDN. Довольно хороший:
http://msdn.microsoft.com/en-us/library/ms227435.aspx
Честно, Вы не должны нуждаться в нашей помощи для нахождения этих вещей. Google Try.
Эта схема специфически полезна в определении порядка событий, но не уточняет их во всех подробностях.
Это непосредственно не отвечает на вопрос жизненного цикла Page, но это покрывает жизненный цикл события Global событиями как BeginRequest и EndRequest. Хорошо понять, как они работают относительно Страниц.
https://web.archive.org/web/1/http://articles.techrepublic%2ecom%2ecom/5100-10878_11-5771721.html