Interface là gì?
Interface là một kế hoạch chi tiết có thể được sử dụng để thực hiện một lớp. Interface 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 là các phương thức trừu tượng.
Một interface không thể được khởi tạo. Tuy nhiên, các lớp thực hiện interface có thể được khởi tạo. Các interface không bao giờ chứa các instance variables, nhưng chúng có thể chứa các biến public static final variables (i.e., constant class variables)
Abstract Class là gì?
Một lớp có từ khóa trừu tượng trong khai báo của nó được gọi là lớp trừu tượng. Các lớp trừu tượng nên có ít nhất một phương thức trừu tượng, tức là phương pháp không có phần thân. Nó có thể có nhiều phương pháp cụ thể.
Các lớp trừu tượng 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 nên thực hiện phương thức trừu tượng.
Các lớp trừu tượng không thể được khởi tạo.
Lý do quan trọng để sử dụng interface
- Interface được sử dụng để thực thi trừu tượng hop
- Được thiết kế để hỗ trợ thay đổ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 thừa kế
Lý do quan trọng để sử dụng lớp trừu tượng
- Các lớp trừu tượng cung cấp chức năng mặc định cho các lớp con.
- Cung cấp một mẫu cho các lớp cụ thể trong tương lai
- Giúp bạn xác định một giao diện chung cho các lớp con của nó
- Lớp trừu tượng cho phép tái sử dụng mã.
Interface Vs. Lớp trừu tượng
Một lớp trừu tượng cho phép bạn tạo chức năng mà các lớp con có thể thực hiện hoặc ghi đè trong khi interface chỉ cho phép bạn nêu chức năng chứ không thực hiện chức năng đó. Một lớp chỉ có thể mở rộng một lớp trừu tượng trong khi một lớp có thể thực hiện nhiều interface.
Thông số | Interface | Lớp trừu tượng |
Tốc độ | Chậm | Nhanh |
Nhiều kế thừa | Thực hiện một số giao diện | Chỉ có một lớp trừu tượng |
Kết cấu | Phương pháp trừu tượng | Phương pháp trừu tượng và cụ thể |
Khi nào sử dụng | Nâng cao trong tương lai | Để tránh độ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 chỉ có thể kế thừa một Lớp trừu tượng |
Thực hiện mặc định | Trong khi thêm các công cụ 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à thực hiện các công cụ mới được xác định. | Trong trường hợp của Lớp trừu tượng, bạn có thể tận dụng việc triển khai mặc định. |
Sửa đổi truy cập | Giao diện không có sửa đổi truy cập. Tất cả mọi thứ được xác định bên trong giao diện được giả định là công cụ sửa đổi. | Lớp trừu tượng có thể có một sửa đổi truy cập. |
Khi nào sử dụng | Tốt hơn là 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. |
Nhiều kế thừa mặc định | 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 lớp trừu tượng. |
Thực hiện | Một giao diện là trừu tượng để nó không thể cung cấp bất kỳ mã nào. | Một lớp trừu tượng có thể cung cấp mã hoàn chỉnh, mặc đị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 một lớp trừu tượng có chứa các sửa đổi 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 lớp trừu tượng định nghĩa 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 định nghĩa | Một lớp trừu tượng cho phép bạn xác định cả hai trường và hằng |
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 lớp trừu tượng có thể kế thừa một lớp và nhiều giao diện. |
Xây dựng hoặc phá hủy | Một giao diện không thể khai báo các hàm tạo hoặc hàm hủy. | Một lớp trừu tượng có thể khai báo các hàm tạo và hàm hủy. |
Giới hạn của tiện ích mở rộng | Nó có thể mở rộng bất kỳ số lượng giao diện. | Nó có thể mở rộng chỉ một lớp hoặc một lớp trừu tượng tại một thời điểm. |
Từ khóa trừu tượng | Trong một từ khóa giao diện trừu tượng, là tùy chọn để khai báo một phương thức là một trừu tượng. | Trong một lớp trừu tượng, từ khóa trừu tượng là bắt buộc để khai báo một phương thức là một trừu tượng. |
Loại lớp | Một giao diện có thể chỉ có các phương thức trừu tượng công khai. | Một lớp trừu tượng có các phương thức trừu tượng được bảo vệ và công khai. |
Khai báo Giao diện và Lớp trừu tượng trong Java
Sau đây là ví dụ để tạo giao diện và lớp trừu tượng trong Java
Cú pháp khai báo interface
interface name{
//methods
}
Ví dụ về interface trong Java
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();
}
}
Cú pháp khai báo abstract class
abstract class name{
// code
}
Ví dụ về abstract class
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 " + (obj.b * obj.b));
}
}
Đăng nhận xét