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:
- Lớp trừu tượng trong Java là gì?
- Giao diện trong Java
- Lớp Tóm tắt vs Giao diện
- Khi nào sử dụng Lớp trừu tượng & Khi nào sử dụng Giao diện?
Để 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ạn và Thủ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ạn và Thủ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.