Sự khác biệt giữa Lớp trừu tượng và Giao diện trong Java là gì?



Bài viết này sẽ giúp bạn hiểu sự khác biệt chính giữa lớp trừu tượng và giao diện trong java với sự trợ giúp của chương trình ví dụ.

Các lớp và giao diện trừu tượng là hai khối xây dựng chínhsau đó . Mặc dù cả hai đều chủ yếu được sử dụng để trừu tượng hóa, chúng rất khác nhau và không thể được sử dụng thay thế cho nhau. Trong bài viết này, chúng ta hãy tìm hiểu sự khác biệt giữa lớp trừu tượng và giao diện trong Java.

Các chủ đề được thảo luận trong bài viết này như sau:





Để hiểu sự khác biệt giữa lớp trừu tượng và giao diện trong , bạn cần biết lớp trừu tượng là gì và giao diện là gì. Vì vậy, hãy bắt đầu bằng cách thảo luận về những điều đó.

Lớp trừu tượng trong Java là gì?

Trong bất kỳ ngôn ngữ lập trình nào, sự trừu tượng nghĩa là ẩn những chi tiết không liên quan với người dùng để chỉ tập trung vào những chi tiết thiết yếu nhằm tăng hiệu quả từ đó giảm bớt độ phức tạp. Trong Java, sự trừu tượng đạt được bằng cách sử dụng các lớp trừu tượng . Một lớp trừu tượng nắm bắt các đặc điểm chung của các lớp con và có thể chứa hoặc không chứa bất kỳ phương thức trừu tượng nào. Nó không thể được khởi tạo mà chỉ có thể được sử dụng như một lớp cha bởi các lớp con của nó. Đây là một chương trình ví dụ minh họa lớp trừu tượng:



Ghi chú: An phương pháp trừu tượng , là một phương pháp không được triển khai tại chỗ và thêm vàokhông đầy đủ lớp học .

package MyPackage // lớp trừu tượng lớp trừu tượng Animal {String AnimalName = '' Animal (String name) {this.AnimalName = name} // khai báo các phương thức không trừu tượng // nó có cài đặt mặc định là public void BasicInfo (String details) {System. out.println (this.AnimalName + '' + details)} // các phương thức trừu tượng sẽ được // thực thi bởi (các) lớp con của nó, lớp trừu tượng public void môi trường sống () trừu tượng public void Breatration ()} lớp Terrestrial expand Animal {// constructor Terrestrial (String name) {super (name)} @Override public void environment () {System.out.println ('leave on land and')} @Override public void Breatration () {System.out.println ('respire qua phổi hoặc khí quản. ')}} lớp Thủy sinh kéo dài Động vật {// constructor Thủy sinh (Tên chuỗi) {super (name)} @Override public void môi trường sống () {System.out.println (' Nó rời khỏi nước và ') } @Override public void Breatration () {System.out.println ('hô hấp qua mang hoặc qua da của chúng.')}} Class AbstractClassDemo {public static voi d main (String [] args) {// tạo đối tượng của lớp Terrestrial // và sử dụng tham chiếu lớp Animal. Animal object1 = new Terrestrial ('Humans') object1.BasicInfo ('là những sinh vật trên cạn, họ') object1.habitat () object1.respiration () System.out.println ('') // tạo Đối tượng của vòng tròn lớp Animal object2 = new Aquatic ('Fishes') object2.BasicInfo ('are aqautic sinh, they') object2.habitat () object2.respiration ()}}

Đầu ra

Con người là sinh vật sống trên cạn, họ rời khỏi đất liền và hô hấp bằng phổi hoặc khí quản. Cá là sinh vật sống trong nước, chúng sống trong nước và hô hấp qua mang hoặc da của chúng.

Các Thông tin cơ bản () là một phương pháp được chia sẻ bởi Trên cạnThủy sinh các lớp học. Từ Lớp động vật không thể được bắt đầu, chúng tôi đang tạo các đối tượng của Trên cạnThủy sinh các lớp cho mục đích lập trình. Tiếp theo, chúng ta có các giao diện.



Giao diện trong Java

Một cách khác để đạt được sự trừu tượng trong Java bằng cách sử dụng giao diện .Giao diện là một tập hợp các phương thức trừu tượng, nó không có bất kỳ , không giống như một lớp trừu tượng. Nhưng không giống như lớp trừu tượng, một giao diện cung cấp sự trừu tượng đầy đủ trong Java. Nó có thể có cả phương thức và biến giống như một lớp. Tuy nhiên, các phương thức được khai báo trong một giao diện là trừu tượng theo mặc định.Đây là một thể hiện lớp trừu tượng:

gói giao diện MyPackage Động vật {// phương thức trừu tượng void môi trường sống () void hô hấp ()} lớp TerrestrialA thực hiện động vật {String AnimalName = '' // hàm tạo TerrestrialA (Tên chuỗi) {this.AnimalName = name} @Override public void môi trường sống () {System.out.println (this.AnimalName + 'left on land and')} @Override public void powers () {System.out.println ('hô hấp qua phổi hoặc khí quản.')}} Lớp AquaticA thực hiện Động vật {String AnimalName = '' // constructor AquaticA (String name) {this.AnimalName = name} @Override public void environment () {System.out.println (this.AnimalName + 'để lại trong nước và')} @Override public void hô hấp () {System.out.println ('hô hấp thông qua mang hoặc da của chúng.')}} Class JavaInterfaceDemo {public static void main (String [] args) {// tạo đối tượng của lớp Terrestrial // và sử dụng tham chiếu lớp Animal . Animals object1 = new TerrestrialA ('Humans') object1.habitat () object1.respiration () System.out.println ('') // tạo Objects của lớp circle Animals object2 = new AquaticA ('Fishes') object2.habitat () object2.respiration ()}}

Đầu ra

Con người rời khỏi đất liền và hô hấp qua phổi hoặc khí quản. Cá sống trong nước và hô hấp qua mang hoặc da của chúng.

Nếu bạn không có bất kỳ mã chung nào giữa các lớp học , sau đó bạn có thể truy cập giao diện. Giao diện giống như một bản thiết kế của một lớp vì nó không có bất kỳ phương thức không trừu tượng nào.

Từ nội dung trên, bạn có thể nhận thấy sự khác biệt chính giữa lớp trừu tượng và giao diện trong . Đó là, không giống như lớp trừu tượng, một giao diện cung cấp đầy đủ sự trừu tượng trong Java. Bây giờ chúng ta hãy tiếp tục và liệt kê các điểm khác biệt khác.

Lớp Tóm tắt vs Giao diện

Bảng dưới đây liệt kê những điểm khác biệt chính giữa lớp trừu tượng và giao diện.

java cách sao chép một đối tượng
Tham số Lớp trừu tượng Giao diện

Triển khai phương pháp mặc định

Nó có thể có triển khai phương pháp mặc định

Các giao diện cung cấp tính trừu tượng thuần túy và hoàn toàn không thể có triển khai

Biến

cách cài đặt hadoop trong linux

Nó có thể chứa các biến không phải là cuối cùng.

Các biến được khai báo trong giao diện theo mặc định là cuối cùng

Từ khóa được sử dụng

Một lớp trừu tượng có thể được mở rộng bằng cách sử dụng từ khóa “expand

Giao diện nên được triển khai bằng cách sử dụng các ïmplements từ khóa

Truy cập Công cụ sửa đổi

Có thểcó công khai, bảo vệ, riêng tư và sửa đổi mặc định

Các phương thức giao diện theo mặc định là công khai. bạn không thể sử dụng bất kỳ công cụ sửa đổi quyền truy cập nào khác với nó

Tốc độ thực hiện

Nó nhanh hơn giao diện

Giao diện hơi chậm hơn và yêu cầu thêm hướng

Lớp học bình thường

Nó chỉ có thể mở rộng một lớp trừu tượng

anaconda cho python là gì

Có thể triển khai nhiều giao diện

Người xây dựng

Một lớp trừu tượng có thể có các hàm tạo

Một giao diện không thể có các hàm tạo

Nhiều người thừa kế

Một lớp trừu tượng có thể mở rộng một lớp khác và có thể triển khai nhiều giao diện Java

Giao diện chỉ có thể mở rộng một giao diện Java khác

Giờ thì bạn đã phân biệt được sự khác biệt chính giữa lớp trừu tượng và giao diện trong Java. Nhưng, làm thế nào để bạn quyết định khi nào sử dụng cái nào trong số hai cái này?

Khi nào sử dụng Lớp trừu tượng & Khi nào sử dụng Giao diện?

Cân nhắc sử dụng các lớp trừu tượng trong các trường hợp sau:

  • Nếu bạn có một số lớp liên quan cần chia sẻ cùng một dòng mã
  • Khi bạn muốn xác định trường không tĩnh hoặc không phải trường cuối cùng
  • Khi cóphương pháp hoặc trườnghoặc yêu cầu truy cập sửa đổi khác với công khai (chẳng hạn như được bảo vệ và riêng tư)

Cân nhắc sử dụng giao diện trong các trường hợp sau:

  • Khi bạn muốn đạt được trừu tượng thuần túy
  • Nếu bạn muốn tuyển dụng nhiều , I E,triển khai nhiều hơn một giao diện
  • Khi bạn muốn chỉ định hành vi của một kiểu dữ liệu cụ thể, nhưng không quan tâm đến việc ai thực hiện hành vi của nó.

Điều này đưa chúng ta đến phần cuối của bài viết này. Tôi đã đề cập đến một trong những câu hỏi Java thường gặp nhất trong Phỏng vấn, đó là sự khác biệt giữa lớp trừu tượng và giao diện trong Java.

Đảm bảo rằng bạn luyện tập nhiều nhất có thể và hoàn nguyên trải nghiệm của mình.

Kiểm tra của Edureka, một công ty học trực tuyến đáng tin cậy với mạng lưới hơn 250.000 người học hài lòng trải dài trên toàn cầu. Chúng tôi ở đây để giúp bạn từng bước trên hành trình của bạn, để trở thành một người ngoài câu hỏi phỏng vấn java này, chúng tôi còn đưa ra một chương trình giảng dạy được thiết kế cho sinh viên và các chuyên gia muốn trở thành một Nhà phát triển Java.

Có một câu hỏi cho chúng tôi? Vui lòng đề cập đến nó trong phần nhận xét của ‘giao diện Bản đồ java’ này và chúng tôi sẽ liên hệ lại với bạn trong thời gian sớm nhất.