Чтобы ответить на ваш актуальный вопрос, автоматическое создание вызова super.onCreate () - это функция плагина ADT. В java вы не можете напрямую заставить подкласс вызывать супер-реализацию метода afaik (см. Шаблон, описанный в других ответах для обхода). Однако имейте в виду, что в Android вы не создаете экземпляры объектов Activity (или объектов Service) напрямую - вы передаете Intent системе, а система создает экземпляр объекта и вызывает onCreate () для него (вместе с другими методами жизненного цикла). Таким образом, система имеет прямую объектную ссылку на экземпляр Activity и может проверять (предположительно) некоторое логическое значение, для которого установлено значение true в реализации суперкласса onCreate (). Хотя я точно не знаю, как это реализовано, вероятно, это выглядит примерно так:
class Activity
{
onCreate()
{
superCalled = true;
...
}
...
}
И в классе «системного» уровня, который получает намерение и создает из него экземпляр объекта Activity:
...
SomeActivitySubclass someActivitySubclassObject = new SomeActivitySubclass();
someActivitySubclassObject.onCreate();
if (!someActivityObject.isSuperCalled())
{
Exception e = new Exception(...)
throw e;
}
Я предполагаю, что это, вероятно, немного сложнее, но вы поняли идею. Eclipse автоматически создает вызов, потому что плагин ADT сообщает об этом для удобства. Удачного кодирования!