Đề XuấT, 2024

Editor Choice

Sự khác biệt giữa Class và Interface trong Java

Cả Class và Interface đều được sử dụng để tạo các kiểu tham chiếu mới. Một lớp là một tập hợp các trường và phương thức hoạt động trên các trường. Một giao diện có các phương thức trừu tượng hoàn toàn tức là các phương thức không có ai. Một giao diện về mặt cú pháp tương tự như lớp nhưng có một sự khác biệt lớn giữa lớp và giao diện là một lớp có thể được khởi tạo, nhưng một giao diện không bao giờ có thể được khởi tạo. Vì vậy, hãy để chúng tôi tìm hiểu thêm một số khác biệt giữa một lớp và giao diện với sự trợ giúp của biểu đồ so sánh được hiển thị dưới đây.

Biểu đồ so sánh

Cơ sở để so sánhLớp họcGiao diện
Căn bảnMột lớp được khởi tạo để tạo các đối tượng.Một giao diện không bao giờ có thể được khởi tạo vì các phương thức không thể thực hiện bất kỳ hành động nào khi gọi.
Từ khóalớp họcgiao diện
Truy cập chỉ địnhCác thành viên của một lớp có thể là tư nhân, công cộng hoặc được bảo vệ.Các thành viên của một giao diện luôn được công khai.
Phương phápCác phương thức của một lớp được định nghĩa để thực hiện một hành động cụ thể.Các phương thức trong một giao diện hoàn toàn trừu tượng.
Thực hiện / Mở rộngMột lớp có thể thực hiện bất kỳ số lượng giao diện nào và chỉ có thể mở rộng một lớp.Một giao diện có thể mở rộng nhiều giao diện nhưng không thể thực hiện bất kỳ giao diện nào.
ConstructorMột lớp có thể có các hàm tạo để khởi tạo các biến.Một giao diện không bao giờ có thể có một hàm tạo vì hầu như không có biến nào để khởi tạo.

Định nghĩa của lớp

Một lớp là một khía cạnh quan trọng nhất của lập trình Java mà không có các lớp bạn không thể thực hiện chương trình java. Một lớp tạo các kiểu tham chiếu và các kiểu tham chiếu này được sử dụng để tạo các đối tượng. Một lớp học có chữ ký và cơ thể. Chữ ký của một lớp có tên và thông tin của lớp cho biết liệu lớp đó có được thừa kế một lớp khác hay không. Phần thân của một lớp có các trường và phương thức hoạt động trên các trường đó. Một lớp được tạo bằng cách sử dụng một lớp từ khóa. Hãy cho chúng tôi xem làm thế nào để khai báo một lớp.

 class class_name {/ * các trường ... phương thức * /} 

Khi một lớp được khởi tạo, mỗi đối tượng được tạo sẽ chứa một bản sao của các trường và các phương thức với chúng. Các trường và thành viên được khai báo bên trong một lớp có thể là tĩnh hoặc không tĩnh. Giá trị thành viên tĩnh là không đổi cho mỗi đối tượng trong khi đó, các thành viên không tĩnh được khởi tạo bởi mỗi đối tượng khác nhau theo yêu cầu của nó.

Các thành viên của một lớp có các chỉ định truy cập quyết định mức độ hiển thị và khả năng truy cập của các thành viên đối với người dùng hoặc các lớp con. Các chỉ định truy cập là công khai, riêng tư và được bảo vệ. Một lớp có thể được kế thừa bởi một lớp khác bằng cách sử dụng bộ xác định truy cập sẽ quyết định mức độ hiển thị của các thành viên của lớp cha (lớp kế thừa) trong lớp con (lớp kế thừa). Do đó, lớp hoàn thành khái niệm ẩn dữ liệu và đóng gói trong lập trình Hướng đối tượng.

Định nghĩa giao diện

Một giao diện cũng nằm trong số các kiểu tham chiếu được định nghĩa trong Java. Tầm quan trọng của giao diện là trong Java, một lớp chỉ có thể kế thừa một lớp duy nhất. Để tránh hạn chế này, các nhà thiết kế của Java đã đưa ra một khái niệm về giao diện. Một giao diện về mặt cú pháp tương tự như một lớp, nhưng nó thiếu khai báo trường và các phương thức bên trong một giao diện không có bất kỳ triển khai nào. Một giao diện được khai báo bằng giao diện từ khóa. Hãy để chúng tôi xem tuyên bố của một giao diện.

 giao diện interface_name {type var_name = value; gõ method1 (danh sách tham số); gõ method2 (danh sách tham số); . . } 

Một giao diện không định nghĩa bất kỳ phương thức nào được khai báo bên trong nó vì nó thiếu các trường để hoạt động. Chỉ vì bất kỳ phương thức nào bên trong một giao diện không thực hiện bất kỳ hành động nào, một giao diện không bao giờ có thể được khởi tạo. Nếu một giao diện có bất kỳ thành viên trường nào, nó phải được khởi tạo tại thời điểm khai báo. Một giao diện không bao giờ chứa bất kỳ hàm tạo nào vì nó thiếu các thành viên trường để khởi tạo. Vì vậy, một giao diện chỉ định nghĩa những gì một lớp phải làm thay vì cách nó phải làm.

Một giao diện một khi được tạo có thể được thực hiện bởi bất kỳ số lượng các lớp bằng cách sử dụng một từ khóa. Nhưng các lớp thực hiện một giao diện phải xác định tất cả các phương thức bên trong một giao diện. Một giao diện cũng có thể kế thừa một giao diện khác bằng cách sử dụng từ khóa mở rộng . Nếu một lớp thực hiện một giao diện mở rộng một giao diện khác. Sau đó, một lớp phải định nghĩa các phương thức của cả hai giao diện xuất hiện trong một chuỗi. Các phương thức bên trong một giao diện phải luôn được công khai vì chúng phải được truy cập bởi các lớp thực hiện chúng.

Sự khác biệt chính giữa Lớp và Giao diện trong Java

  1. Một lớp có thể được khởi tạo bằng cách tạo các đối tượng của nó. Một giao diện không bao giờ được khởi tạo vì các phương thức được khai báo bên trong một giao diện là trừu tượng và không thực hiện bất kỳ hành động nào, do đó không có việc sử dụng bất kỳ giao diện nào.
  2. Một lớp được khai báo bằng một lớp từ khóa. Theo cùng một cách, một giao diện được tạo bằng giao diện từ khóa.
  3. Các thành viên của một lớp có thể có bộ xác định truy cập như công khai, riêng tư, được bảo vệ. Nhưng các thành viên của một giao diện luôn được công khai vì chúng phải được truy cập bởi các lớp thực hiện chúng.
  4. Các phương thức bên trong một lớp được định nghĩa để thực hiện một hành động trên các trường được khai báo trong lớp. Vì giao diện thiếu trong khai báo các trường, các phương thức bên trong một giao diện hoàn toàn trừu tượng.
  5. Một lớp có thể thực hiện bất kỳ số lượng giao diện nào nhưng chỉ có thể mở rộng một siêu lớp. Một giao diện có thể mở rộng bất kỳ số lượng giao diện nhưng không thể thực hiện bất kỳ giao diện nào.
  6. Một lớp có các hàm tạo được định nghĩa bên trong nó để có được biến khởi tạo. Nhưng, một giao diện không có bất kỳ hàm tạo nào vì không có trường nào được khởi tạo. Các trường của một giao diện chỉ được khởi tạo tại thời điểm khai báo.

Phần kết luận:

Cả hai lớp và giao diện đều có tầm quan trọng riêng của chúng. Một lớp được sử dụng khi chúng ta cần xác định cách thực hiện nhiệm vụ. Một giao diện được sử dụng khi chúng ta cần biết nhiệm vụ nào phải được thực hiện.

Top