Sự khác biệt giữa AbstracLớp và giao diện trong Java
Sự khác biệt chính giữa các loại thuốc giảm đautracLớp và giao diện trong Java
- Trong Interface, một lớp có thể triển khai nhiều interface, trong khi một lớp chỉ có thể kế thừa một Interface duy nhất.tracLớp t.
- Trong Interface không có bổ ngữ truy cập. Mọi thứ được định nghĩa bên trong Interface đều được giả định là có bổ ngữ public, trong khi Abs thì không.tracLớp t có thể có một bộ điều chỉnh quyền truy cập.
- Giao diện không thể chứa các trường dữ liệu, trong khi đó, giá trị tuyệt đốitracLớp t có thể có các trường dữ liệu.
- Giao diện giúp xác định các khả năng ngoại vi của một lớp, trong khi một lớp tuyệt đốitracLớp t xác định danh tính của một lớp.
Abs là gì?tracLớp t?
Một lớp học có abstracTừ khóa t trong phần khai báo của nó được gọi là abstraclớp t. AbstracCác lớp t nên có số điểm tuyệt đối bằng không hoặc nhiều hơn.traccác phương pháp t. Tức là, các phương pháp không có thân. Nó có thể có nhiều phương pháp cụ thể. AbstracCác lớp cho phép bạn tạo bản thiết kế cho các lớp cụ thể. Nhưng lớp kế thừa phải triển khai giao diện abs.tracphương pháp t. Tuyệt đốitracCác lớp t không thể được khởi tạo.
Lý do quan trọng để sử dụng giao diện
- Giao diện được sử dụng để đạt được abstracsản xuất.
- Được thiết kế để hỗ trợ độ phân giải phương thức động trong thời gian chạy
- Nó giúp bạn đạt được khớp nối lỏng lẻo.
- Cho phép bạn tách định nghĩa của một phương thức khỏi hệ thống phân cấp kế thừa
Những lý do quan trọng để sử dụng AbstracLớp t
- AbstracCác lớp t cung cấp chức năng mặc định cho các lớp con.
- Cung cấp mẫu cho các lớp cụ thể trong tương lai
- Giúp bạn xác định giao diện chung cho các lớp con của nó
- AbstracLớp `t` cho phép tái sử dụng mã.
Giao diện là gì?
Giao diện là một bản thiết kế có thể được sử dụng để triển khai một lớp. Giao diện không chứa bất kỳ phương thức cụ thể nào (các phương thức có mã). Tất cả các phương thức của một giao diện đều là phương thức trừu tượng.tracCác phương thức t. Một giao diện không thể được khởi tạo. Tuy nhiên, các lớp triển khai giao diện có thể được khởi tạo. Giao diện không bao giờ chứa các biến thể hiện, nhưng chúng có thể chứa các biến công khai tĩnh cuối cùng (tức là các biến hằng của lớp).
Sự khác biệt giữa Interface và AbstracLớp t trong Java
Một cơ bụngtracLớp cho phép bạn tạo ra các chức năng mà các lớp con có thể triển khai hoặc ghi đè, trong khi giao diện chỉ cho phép bạn khai báo chức năng chứ không cho phép bạn triển khai nó. Một lớp chỉ có thể kế thừa từ một lớp duy nhất.tracTrong khi đó, một lớp có thể triển khai nhiều giao diện.
| Thông số Kỹ thuật | Giao thức | Abstraclớp t |
|---|---|---|
| Tốc độ | Chậm | NHANH CHÓNG |
| Nhiều thừa kế | Triển khai một số giao diện | Chỉ có một cơ bụngtraclớp t |
| Structure | Abstracphương pháp t | Abstracphương pháp t & bê tông |
| Khi nào sử dụng | Nâng cao trong tương lai | Để tránh sự độc lập |
| Kế thừa/Thực hiện | Một lớp có thể thực hiện nhiều giao diện | Lớp này chỉ có thể kế thừa một lớp Abs duy nhất.tracLớp t |
| Triển khai mặc định | Trong khi thêm nội dung mới vào giao diện, thật là một cơn ác mộng khi tìm thấy tất cả những người triển khai và triển khai những nội dung mới được xác định. | Trong trường hợp AbstracVới lớp t, bạn có thể tận dụng cách triển khai mặc định. |
| Truy cập công cụ sửa đổi | Giao diện không có công cụ sửa đổi quyền truy cập. Mọi thứ được xác định bên trong giao diện đều được coi là công cụ sửa đổi công khai. | AbstracLớp t có thể có một bộ điều chỉnh quyền truy cập. |
| Khi nào sử dụng | Tốt hơn nên sử dụng giao diện khi các triển khai khác nhau chỉ chia sẻ chữ ký phương thức. Phân cấp đa hình của các loại giá trị. | Nó nên được sử dụng khi các triển khai khác nhau cùng loại có chung một hành vi. |
| Các trường dữ liệu | giao diện không thể chứa các trường dữ liệu. | lớp có thể có các trường dữ liệu. |
| Mặc định nhiều kế thừa | Một lớp có thể thực hiện nhiều giao diện. | Một lớp chỉ kế thừa một abstraclớp t. |
| Triển khai hệ thống | Giao diện là tuyệt đốitracđể nó không thể cung cấp bất kỳ mã nào. | Một cơ bụngtracLớp `t` có thể cung cấp mã mặc định hoàn chỉnh, cần được ghi đè. |
| Sử dụng công cụ sửa đổi Access | Bạn không thể sử dụng công cụ sửa đổi truy cập cho phương thức, thuộc tính, v.v. | Bạn có thể sử dụng abstracLớp t chứa các công cụ sửa đổi quyền truy cập. |
| Sử dụng | Các giao diện giúp xác định các khả năng ngoại vi của một lớp. | Một cơ bụngtracLớp t xác định danh tính của một lớp. |
| Các trường được xác định | Không có trường nào có thể được xác định | Một cơ bụngtracLớp `t` cho phép bạn định nghĩa cả trường và hằng số. |
| di sản | Một giao diện có thể kế thừa nhiều giao diện nhưng không thể kế thừa một lớp. | Một cơ bụngtracLớp t có thể kế thừa một lớp và nhiều giao diện. |
| Hàm tạo hoặc hàm hủy | Một giao diện không thể khai báo hàm tạo hoặc hàm hủy. | Một cơ bụngtracLớp t có thể khai báo các hàm tạo và hàm hủy. |
| Giới hạn tiện ích mở rộng | Nó có thể mở rộng bất kỳ số lượng giao diện. | Nó chỉ có thể mở rộng một lớp hoặc một abstracmỗi lần một lớp. |
| Abstractừ khóa t | Trong một vùng bụngtracTừ khóa `t` trong giao diện là tùy chọn khi khai báo một phương thức là `abs`.tract. | Trong một vùng bụngtraclớp t, abstracTừ khóa `t` là bắt buộc khi khai báo một phương thức là abs.tract. |
| Loại lớp | Một giao diện chỉ có thể có các thuộc tính công khai.traccác phương pháp t. | Một cơ bụngtracLớp t có sự bảo vệ và sự an toàn công cộng.traccác phương pháp t. |
Ví dụ mã cho giao diện và hàm AbstracLớp t trong Java
Sau đây là đoạn mã mẫu để tạo giao diện và abstraclớp t trong Java
Cú pháp giao diện
interface name{
//methods
}
Java Ví dụ về giao diện:
interface Pet {
public void test();
}
class Dog implements Pet {
public void test() {
System.out.println("Interface Method Implemented");
}
public static void main(String args[]) {
Pet p = new Dog();
p.test();
}
}
AbstracCú pháp lớp t
abstract class name{
// code
}
AbstracVí dụ về lớp t:
abstract class Shape {
int b = 20;
abstract public void calculateArea();
}
public class Rectangle extends Shape {
public static void main(String args[]) {
Rectangle obj = new Rectangle();
obj.b = 200;
obj.calculateArea();
}
public void calculateArea() {
System.out.println("Area is " + (b * b));
}
}

