Đề XuấT, 2024

Editor Choice

Sự khác biệt giữa mở rộng và thực hiện các từ khóa trong Java

Các từ khóa mở rộng và thực hiện được sử dụng để kế thừa các tính năng của khối cha mẹ đã có trong khối con mới được tạo. Sử dụng từ khóa mở rộng, một lớp mới được tạo (lớp con) có thể kế thừa các tính năng của một lớp hiện có (siêu lớp). Sử dụng từ khóa thực hiện một lớp mới được tạo có thể thực hiện tất cả các phương thức của một giao diện. Sự khác biệt chính giữa các từ khóa mở rộng và thực hiện là một lớp mở rộng một lớp khác để kế thừa tất cả các thành viên của nó trong khi đó, một lớp thực hiện một giao diện để kế thừa tất cả các phương thức của nó và thực hiện chúng theo yêu cầu của nó. Có một số khác biệt khác giữa các từ khóa mở rộng và thực hiện được thảo luận trong biểu đồ so sánh được hiển thị bên dưới.

Biểu đồ so sánh

Cơ sở để so sánhMở rộngThực hiện
Căn bảnTừ khóa mở rộng được sử dụng để tạo một lớp con bằng cách sử dụng các tính năng của siêu hạng.Từ khóa thực hiện được sử dụng để thực hiện giao diện
Phương phápTừ khóa mở rộng có thể không ghi đè tất cả các phương thức của một siêu lớp.Từ khóa thực hiện phải thực hiện tất cả các phương thức của một giao diện được thực hiện.
Lớp họcMột lớp chỉ có thể mở rộng một siêu lớp.Một lớp có thể thực hiện nhiều giao diện.
Giao diệnMột giao diện có thể mở rộng nhiều hơn một giao diện.Một giao diện không thể thực hiện giao diện khác.

Định nghĩa của từ khóa mở rộng

Kế thừa là một khái niệm quan trọng trong Lập trình hướng đối tượng, đạt được khi một lớp con mở rộng một siêu lớp khác. Một lớp con được phép mở rộng chỉ một siêu lớp. Một lớp không bao giờ có thể mở rộng nhiều hơn một siêu lớp trong Java. Khi một lớp mở rộng một lớp khác, nó có thể ghi đè các phương thức được định nghĩa trong một siêu lớp. Hãy để chúng tôi hiểu từ khóa mở rộng với sự giúp đỡ của một ví dụ.

 lớp A {Chuỗi s; A (Chuỗi s1) {s = s1; } // hiển thị chuỗi void display () {System.out.println (+ s); }} lớp B mở rộng A {Chuỗi i; B (Chuỗi s1, Chuỗi i1) {super (s1); i = i1; } void disaly () {super.dispaly (); / * display () của lớp A được gọi. * / System.out.println (+ i); }} Lớp ghi đè {public static void main (String args []) {B ob = new B (Tech, Difference); ob.display (); / * hiển thị lớp B được gọi * /}} / * out put * / Tech Difference 

Trong đoạn mã trên, bạn có thể quan sát rằng lớp B đã mở rộng lớp A và đã ghi đè hiển thị phương thức () được xác định trong lớp A. Theo cách tương tự, một giao diện có thể mở rộng nhiều giao diện cùng một lúc. Vì giao diện không phải thực hiện bất kỳ phương pháp nào của giao diện mở rộng, do đó, nó được phép kế thừa nhiều giao diện cùng một lúc.

Định nghĩa của từ khóa

Sử dụng từ khóa thực hiện, một lớp kế thừa tất cả các phương thức trong một giao diện. Khi một lớp thực hiện một giao diện, lớp đó phải thực hiện tất cả các phương thức của giao diện được triển khai. Một giao diện không bao giờ có thể thực hiện giao diện khác, vì thực hiện từ khóa hứa hẹn thực hiện các phương thức nhưng giao diện không bao giờ thực hiện các phương thức trong đó, do đó giao diện không thể thực hiện giao diện khác. Hãy để chúng tôi hiểu từ khóa thực hiện với sự giúp đỡ của một ví dụ.

 chuỗi giao diện {void display (String s); } số nguyên giao diện {void show (int i); } lớp Demo thực hiện các chuỗi, số nguyên {void show (int i) {System.Out.Println ("giá trị số nguyên:" + i); } void display (String s) {System.Out.Println ("giá trị chuỗi:" + s); }} lớp Demo_main {public static void main (chuỗi args []) {Demo d = new Demo (); d.display ("TechDifferences"); d.show (2); }} / * đầu ra * / TechDifferences 2 

Như trong đoạn mã trên, bạn có thể thấy rằng lớp demo thực hiện hai chuỗi giao diện và số nguyên và đã triển khai các phương thức được khai báo trong cả hai giao diện là display () và show ().

Sự khác biệt chính giữa mở rộng và thực hiện

  1. Một lớp có thể kế thừa một lớp khác hoặc một giao diện kế thừa các giao diện khác bằng cách sử dụng từ khóa mở rộng trong khi đó, một lớp có thể thực hiện các giao diện bằng cách sử dụng từ khóa.
  2. Một lớp con mở rộng một siêu lớp có thể hoặc không thể ghi đè tất cả các phương thức trong một siêu lớp. Mặt khác, một lớp thực hiện một giao diện phải xác định / thực hiện tất cả các phương thức của giao diện đó.
  3. Một lớp có thể thực hiện bất kỳ số lượng giao diện nào cùng một lúc. Mặt khác, một lớp chỉ có thể mở rộng một siêu hạng.
  4. Một giao diện có thể mở rộng bất kỳ số lượng giao diện nào, nhưng một giao diện không bao giờ có thể thực hiện bất kỳ giao diện nào khác vì việc triển khai có nghĩa là xác định các phương thức và giao diện luôn có các phương thức trừu tượng để giao diện không bao giờ có thể thực hiện giao diện khác.

Phần kết luận:

Tôi kết thúc cuộc thảo luận nói rằng việc thực hiện một giao diện làm cho mã linh hoạt hơn so với việc mở rộng một lớp. Vì nó tránh được sự hạn chế chỉ kế thừa một siêu lớp trong Java. Sử dụng từ khóa thực hiện một lớp có thể kế thừa các tính năng của nhiều giao diện.

Top