Để trả lời câu hỏi thực tế của bạn, tự động tạo lệnh gọi tới super.onCreate () là một tính năng của plugin ADT. Trong java, bạn không thể trực tiếp buộc một lớp con gọi việc thực thi siêu phương thức, afaik (xem mẫu được mô tả trong các câu trả lời khác để giải quyết vấn đề). Tuy nhiên, hãy nhớ rằng trong Android, bạn không khởi tạo trực tiếp các đối tượng Hoạt động (hoặc đối tượng Dịch vụ) - bạn chuyển một Intent cho hệ thống và hệ thống khởi tạo đối tượng và gọi onCreate () dựa trên nó (cùng với các phương thức vòng đời khác). Vì vậy, hệ thống có một tham chiếu đối tượng trực tiếp đến cá thể Activity và có thể kiểm tra (có lẽ) một số Boolean được đặt thành true trong quá trình triển khai lớp cha của onCreate (). Mặc dù tôi không biết chính xác nó được triển khai như thế nào, nhưng nó có thể trông giống như sau:
class Activity
{
onCreate()
{
superCalled = true;
...
}
...
}
Và trong lớp cấp độ "hệ thống" nhận Intent và khởi tạo đối tượng Activity từ nó:
...
SomeActivitySubclass someActivitySubclassObject = new SomeActivitySubclass();
someActivitySubclassObject.onCreate();
if (!someActivityObject.isSuperCalled())
{
Exception e = new Exception(...)
throw e;
}
Tôi đoán là nó có thể phức tạp hơn thế một chút, nhưng bạn hiểu đấy. Eclipse tự động tạo cuộc gọi vì plugin ADT yêu cầu nó, như một sự tiện lợi. Chúc bạn viết mã vui vẻ!