Sự khác biệt giữa các công cụ thực hiện và mở rộng
Thực hiện và mở rộng
Các công cụ Khởi động và Mở rộng là hai từ khóa được tìm thấy trong ngôn ngữ lập trình Java. Từ khoá triển khai được sử dụng rõ ràng để thực hiện một giao diện, trong khi từ khoá Extends được sử dụng để kế thừa từ lớp (siêu). Xin lưu ý rằng các khái niệm về thừa kế và giao diện có mặt trong hầu hết các ngôn ngữ lập trình hướng đối tượng khác như C # và VB. NET, nhưng họ cung cấp các cú pháp hoặc từ khoá khác nhau để áp dụng các khái niệm đó. Bài viết này chỉ tập trung vào các công cụ Implements và Extends được định nghĩa trong Java.
Mở rộng
Mở rộng từ khoá được sử dụng để thực hiện khái niệm thừa kế trong ngôn ngữ lập trình Java. Thừa kế chủ yếu cung cấp tái sử dụng mã bằng cách cho phép mở rộng thuộc tính và hành vi của một lớp hiện có bởi một lớp mới được xác định. Khi một phân lớp mới (hoặc lớp dẫn xuất) mở rộng một lớp siêu (hay lớp cha mẹ) mà lớp con sẽ kế thừa tất cả các thuộc tính và phương thức của lớp siêu. Lớp con có thể tùy ý ghi đè lên hành vi (cung cấp chức năng mới hoặc mở rộng cho các phương thức) thừa kế từ lớp cha mẹ. Một phân lớp không thể mở rộng nhiều lớp siêu trong Java. Vì vậy, bạn không thể sử dụng mở rộng cho đa thừa kế. Để có nhiều thừa kế, bạn cần phải sử dụng giao diện như được giải thích bên dưới.
Thực hiện
Thực hiện từ khoá trong ngôn ngữ lập trình Java được sử dụng để thực hiện giao diện của một lớp. Một giao diện trong Java là một loại trừu tượng được sử dụng để chỉ định một hợp đồng cần được thực hiện bởi các lớp, thực hiện giao diện đó. Thông thường một giao diện sẽ chỉ chứa các chữ ký phương pháp và các khai báo liên tục. Bất kỳ giao diện nào thực hiện một giao diện cụ thể phải thực hiện tất cả các phương pháp được định nghĩa trong giao diện, hoặc phải được tuyên bố như một lớp trừu tượng. Trong Java, kiểu của một tham chiếu đối tượng có thể được định nghĩa là một kiểu giao diện. Nhưng đối tượng đó phải là null hoặc nên giữ một đối tượng của một lớp, thực thi giao diện cụ thể đó. Sử dụng từ khóa Implements trong Java, bạn có thể thực hiện nhiều giao diện cho một lớp duy nhất. Giao diện không thể thực hiện một giao diện khác. Tuy nhiên một giao diện có thể mở rộng một lớp.
Mặc dù, Implements and Extends là hai từ khóa cung cấp cơ chế kế thừa các thuộc tính và hành vi cho một lớp trong ngôn ngữ lập trình Java, chúng được sử dụng cho hai mục đích khác nhau. Từ khoá triển khai được sử dụng cho một lớp để thực hiện một giao diện nhất định, trong khi từ khoá Extends được sử dụng cho lớp con để mở rộng từ lớp siêu. Khi lớp thực thi một giao diện, lớp đó cần phải thực hiện tất cả các phương pháp được định nghĩa trong giao diện, nhưng khi một phân lớp mở rộng một lớp siêu, nó có thể hoặc không thể ghi đè các phương thức trong lớp cha mẹ.Cuối cùng, một sự khác biệt chính giữa Implements và Extends là, một lớp có thể thực hiện nhiều giao diện nhưng nó chỉ có thể mở rộng từ một lớp siêu trong Java. Nói chung, việc sử dụng Implements (giao diện) được coi là thuận lợi hơn so với việc sử dụng Extends (thừa kế), vì một số lý do như tính linh hoạt cao hơn và khả năng giảm thiểu sự ghép nối. Do đó trong thực tế, lập trình cho một giao diện được ưa thích hơn việc mở rộng từ các lớp cơ sở.