Interface trong Java
I. Interface là gì ?
- Đừng nhầm lẫn nó không phải là giao diện người dùng !
- Trong java không hỗ trợ đa kế thừa ở các lớp thường (tránh đi tính phức tạp) java thay thế tính chất này bằng interface.
- Một lớp có thể implement từ nhiều interface để để thừa hưởng thêm nhiều phương thức và thuộc tính của các interface này.
- Interface khai báo giống như một lớp nhưng nó chỉ chứa các phương thức trừu tượng và các hằng số (trong khi abstract class có thể khai báo các hàm và các biến như class bình thường) , không thể khởi tạo bằng toán tử new (giống với abstract class)
- Interface hỗ trợ đa kế thừa...1 interface có thể kế thừa từ nhiều interface khác.
- Để sử dụng Interface chúng ta cần Implement chúng bởi các class , 1 class có thể implement nhiều interface và chúng phải override tất cả các abstract method ở các interface này.
II.Quan hệ
1. Quan hệ Interface - Interface
-> Khác với class thông thường interface hỗ trợ đa kế thừa , một interface có thể được kế thừa từ nhiều interface khác.
-> 1 Interface khi kế thừa từ 1 hay nhiều interface khác không nhất thiết phải override tất cả các abstract method ở các interface nó kế thừa.
=> Trong trường hợp trên Interface CongThuc không cần phải override lại các abstract method của các interface nó kế thừa ......nhưng nếu 1 class muốn kế thừa từ interface CongThuc sẽ phải override lại toàn bộ các abstract method của những interface mà interface CongThuc kế thừa.
2.Quan hệ class,abstract class - Interface
-> Chúng ta cần các lớp để triển khai interface.
-> Khi triển khai class bằng từ khóa implement , chúng ta phải override lại tất các các abstract method của interface nó triển khai.
-> Một abstract class khi triển khai(implement) 1 interface không nhất thiết phải override lại các abstract method của interface này.
=> Tổng kết : bất kì lớp nào được implement từ 1 interface đều phải tuân thủ các luật của interface đó (override các phương thức)
+ Các class được triển khai bở cùng 1 interface đều có những mô tả giống nhau những lại định nghĩa riêng theo kiểu của từng class (chỉ mô tả không định nghĩa)
II.Phân biệt Interface và Abstract class.
- Interface là ảo 100% , abstract class ảo <100%.
- Interface giống như một bản cải tiến của abstract class.
- Tính năng hỗ trợ đa kế thừa là sự cải tiến lớn nhất của Interface so với Abstract class.,
nó giúp class implement thừa hưởng được thêm nhiều phương thức và thuộc hơn.
- Đừng nhầm lẫn nó không phải là giao diện người dùng !
- Trong java không hỗ trợ đa kế thừa ở các lớp thường (tránh đi tính phức tạp) java thay thế tính chất này bằng interface.
- Một lớp có thể implement từ nhiều interface để để thừa hưởng thêm nhiều phương thức và thuộc tính của các interface này.
- Interface khai báo giống như một lớp nhưng nó chỉ chứa các phương thức trừu tượng và các hằng số (trong khi abstract class có thể khai báo các hàm và các biến như class bình thường) , không thể khởi tạo bằng toán tử new (giống với abstract class)
- Interface hỗ trợ đa kế thừa...1 interface có thể kế thừa từ nhiều interface khác.
- Để sử dụng Interface chúng ta cần Implement chúng bởi các class , 1 class có thể implement nhiều interface và chúng phải override tất cả các abstract method ở các interface này.
II.Quan hệ
1. Quan hệ Interface - Interface
-> Khác với class thông thường interface hỗ trợ đa kế thừa , một interface có thể được kế thừa từ nhiều interface khác.
-> 1 Interface khi kế thừa từ 1 hay nhiều interface khác không nhất thiết phải override tất cả các abstract method ở các interface nó kế thừa.
=> Trong trường hợp trên Interface CongThuc không cần phải override lại các abstract method của các interface nó kế thừa ......nhưng nếu 1 class muốn kế thừa từ interface CongThuc sẽ phải override lại toàn bộ các abstract method của những interface mà interface CongThuc kế thừa.
2.Quan hệ class,abstract class - Interface
-> Chúng ta cần các lớp để triển khai interface.
-> Khi triển khai class bằng từ khóa implement , chúng ta phải override lại tất các các abstract method của interface nó triển khai.
-> Một abstract class khi triển khai(implement) 1 interface không nhất thiết phải override lại các abstract method của interface này.
=> Tổng kết : bất kì lớp nào được implement từ 1 interface đều phải tuân thủ các luật của interface đó (override các phương thức)
+ Các class được triển khai bở cùng 1 interface đều có những mô tả giống nhau những lại định nghĩa riêng theo kiểu của từng class (chỉ mô tả không định nghĩa)
II.Phân biệt Interface và Abstract class.
- Interface là ảo 100% , abstract class ảo <100%.
- Interface giống như một bản cải tiến của abstract class.
- Tính năng hỗ trợ đa kế thừa là sự cải tiến lớn nhất của Interface so với Abstract class.,
nó giúp class implement thừa hưởng được thêm nhiều phương thức và thuộc hơn.
Nhận xét
Đăng nhận xét