Щоб відповісти на ваше власне запитання, автоматичне створення виклику super.onCreate () є особливістю плагіна ADT. У Java ви не можете безпосередньо змусити підклас викликати суперреалізацію методу afaik (див. Шаблон, описаний в інших відповідях для обходу). Однак майте на увазі, що в Android ви не створюєте екземпляри об’єктів Activity (або об’єктів Service) безпосередньо - ви передаєте Intent системі, а система створює екземпляр об’єкта і викликає onCreate () до нього (разом з іншими методами життєвого циклу). Таким чином, система має пряме посилання на об'єкт Activity і може перевірити (імовірно) деякий логічний тип, якому встановлено значення true у реалізації суперкласу onCreate (). Хоча я не знаю точно, як це реалізовано, це, мабуть, виглядає приблизно так:
class Activity
{
onCreate()
{
superCalled = true;
...
}
...
}
І в класі рівня "система", який отримує Intent і створює з нього об'єкт Activity:
...
SomeActivitySubclass someActivitySubclassObject = new SomeActivitySubclass();
someActivitySubclassObject.onCreate();
if (!someActivityObject.isSuperCalled())
{
Exception e = new Exception(...)
throw e;
}
Я думаю, це, мабуть, трохи складніше, ніж це, але ви розумієте. Eclipse автоматично створює виклик, оскільки плагін ADT про це повідомляє для зручності. Щасливого кодування!