Dù bạn đang nhìn thấy ở đây được gọi là constructor chaining. Bây giờ là gì Constructor Chaining:
Việc tạo chuỗi xảy ra thông qua việc sử dụng thừa kế. Nhiệm vụ đầu tiên của phương thức khởi tạo của lớp con là gọi phương thức khởi tạo của lớp cha ' . Điều này đảm bảo rằng việc tạo đối tượng lớp con bắt đầu với việc khởi tạo các lớp ở trên nó trong chuỗi thừa kế .
Có thể có bất kỳ số lượng lớp nào trong chuỗi kế thừa. Mỗi phương thức khởi tạo sẽ gọi chuỗi cho đến khi lớp học ở đầu trang đã được truy cập và khởi tạo.Sau đó, mỗi lớp tiếp theo dưới đây là được khởi tạo khi chuỗi gió quay trở lại lớp con ban đầu. Quá trình này được gọi là xây dựng chuỗi. (Source)
Đó là những gì xảy ra trong chương trình của bạn. Khi bạn biên dịch chương trình của bạn, bạn Child
được biên dịch để theo cách này bởi javac
:
class Child extends Parent
{
Child()
{
super();//automatically inserted here in .class file of Child
System.out.println("S2");
}
}
Và lớp chuyên của bạn được chuyển đổi sang sau:
Parent()
{
super();//Constructor of Object class
System.out.println("S1");
}
Đó là lý do tại sao sản lượng của bạn được hiển thị như:
S1 //output from constructor of super class Parent
S2 //output from constructor of child Class Child
Nguồn
2013-03-30 18:19:55