Phân Biệt Lớp Abstract Và Interface Trong Java
Có thể bạn quan tâm
- Khóa học Java
- Khóa học Offline tại Hà Nội
- Khóa học Java Online tại Udemy
- Java cơ bản
- Giới thiệu Java
- Java là gì?
- Lịch sử Java
- Tổng quan
- Cài đặt Java
- Cách thiết lập Path
- Chương trình Hello World
- Phân tích chương trình Hello World
- Cú pháp Java cơ bản
- JDK, JRE và JVM
- Biến trong Java
- Kiểu dữ liệu
- Toán tử
- Các kiểu vòng lặp
- Lệnh if, switch
- Đối tượng Number
- Đối tượng Character
- Khái niệm Hướng đối tượng
- Khái niệm OOP
- Lớp và Đối tượng
- Phương thức
- Nạp chồng phương thức (Overloading)
- Constructor
- Từ khóa static
- Từ khóa this
- Tính kế thừa (IS-A)
- Quan hệ (HAS-A)
- Ghi đè phương thức (Overriding)
- Kiểu trả về Covariant
- Từ khóa super
- Từ khóa final
- Tính đa hình
- Dynamic Binding
- Toán tử instanceof
- Tính trừu tượng
- Lớp abstract
- Interface
- Lớp abstract vs Interface
- Java Package
- Các kiểu Modifier
- Non-Access Modifier
- Access Modifier
- Tính bao đóng
- Lớp Object
- Nhân bản đối tượng
- Mảng (Array)
- Lớp Wrapper
- Gọi bởi giá trị
- Từ khóa strictfp
- Date & Time
- Regular Expression
- File và I/O trong Java
- File và I/O
- ByteArrayInputStream
- DataInputStream
- ByteArrayOutputStream
- DataOutputStream
- Lớp File
- Lớp FileReader
- Lớp FileWriter
- String trong Java
- Đối tượng String
- Immutable String
- So sánh chuỗi
- Nối chuỗi
- Chuỗi con
- Phương thức của lớp String
- Lớp StringBuffer
- Lớp StringBuilder
- String vs StringBuffer
- StringBuilder vs StringBuffer
- Tạo Immutable String
- Phương thức toString()
- Lớp StringTokenizer
- Xử lý ngoại lệ (Exception Handling)
- Exception là gì
- Khối try-catch
- Khối finally
- Từ khóa throw
- Từ khóa throws
- ExceptionHandling vs MethodOverriding
- Custom Exception
- Cấu trúc dữ liệu trong Java
- Cấu trúc dữ liệu
- Enumeration Interface
- Lớp BitSet
- Lớp Vector
- Lớp Stack
- Lớp Dictionary
- Lớp Hashtable
- Lớp Properties
- Collection trong Java
- Java Collection
- Collection Interface
- List Interface
- Set Interface
- SortedSet Interface
- Map Interface
- MapEntry Interface
- SortedMap Interface
- Lớp LinkedList
- Lớp ArrayList
- Lớp HashSet
- Lớp LinkedHashSet
- Lớp TreeSet
- Lớp HashMap
- Lớp TreeMap
- Thuật toán Collection
- Sử dụng Iterator
- Sử dụng Comparator
- Java nâng cao
- Java Generic
- Java Serialization
- Lập trình mạng
- Gửi Email
- Java Multithread
- Cơ bản về Applet
- Tạo Javadoc
- Tài liệu tham khảo Java
- Inner Class và chuyển đổi dữ liệu
- Tài liệu Java tham khảo
- 200 Câu hỏi phỏng vấn Java
- Ví dụ Java
Cả lớp abstract và Interface được sử dụng để thu được tính trừu tượng, từ đó chúng ta có thể khai báo các phương thức trừu tượng. Cả lớp trừu tượng và Interface không thể được khởi tạo. Nhưng cũng có các điểm khác nhau giữa lớp trừu tượng và Interface, như sau:
| STT | Lớp trừu tượng | Interface |
|---|---|---|
| 1 | Lớp trừu tượng có thể có các phương thức abstract và non-abstract | Interface chỉ có thể có phương thức abstract |
| 2 | Lớp trừu tượng không hỗ trợ đa kế thừa | Interface hỗ trợ đa kế thừa |
| 3 | Lớp trừu tượng có thể có các biến final, non-final, static và non-static | Interface chỉ có các biến static và final |
| 4 | Lớp trừu tượng có thể có phương thức static, phương thức main và constructor | Interface không thể có phương thức static, main hoặc constructor. |
| 5 | Từ khóa abstract được sử dụng để khai báo lớp trừu tượng | Từ khóa interface được sử dụng để khai báo Interface |
| 6 | Lớp trừu tượng có thể cung cấp trình triển khai của Interface | Interface không cung cấp trình triển khai cụ thể của lớp abstract |
| 6 | Ví dụ: public abstract class Shape{ public abstract void draw(); } | Ví dụ: public interface Drawable{ void draw(); } |
Về cơ bản, lớp trừu tượng đạt được trừu tượng hóa một phần (từ 0 tới 100%) trong khi đó Interface có thể đạt được trừu tượng hóa hoàn toàn (100%).
Quảng cáoVí dụ về lớp trừu tượng và Interface trong Java
//Tao interface ma co 4 phuong thuc interface A{ void a();//theo mac dinh, public va abstract void b(); void c(); void d(); } //Tao lop abstract ma cung cap trinh trien khai cua mot phuong thuc cua A interface abstract class B implements A{ public void c(){System.out.println("Toi la C");} } //Tao lop con cua lop abstract, bay gio chung ta can cung cap trinh trien khai cho cac phuong thuc con lai class M extends B{ public void a(){System.out.println("Toi la a");} public void b(){System.out.println("Toi la b");} public void d(){System.out.println("Toi la d");} } //Tao mot lop Test ma goi cac phuong thuc cua A interface class Test5{ public static void main(String args[]){ A a=new M(); a.a(); a.b(); a.c(); a.d(); }} Quảng cáoChạy chương trình trên sẽ cho kết quả:
Toi la a Toi la b Toi la c Toi la dPs: Đi phỏng vấn có thể hỏi về sự khác nhau giữa abstract class và interface. Các bạn nên chú ý các phương thức của interface là abstract 100%, trong abstract class có thể có phương thức không phải abstract. Trong thiết kế phần mềm, interface thường được dùng để chỉ 2 hay nhiều class cùng làm việc gì đó (ví dụ cùng in - Printable), trong khi abstract class thường hướng đến quan hệ cha con trong lập trình hướng đối tượng. Các bạn có thể đọc thêm https://stackoverflow.com/questions/479142/when-to-use-an-interface-instead-of-an-abstract-class-and-vice-versa
👉 Giải bài nhanh với AI Hay:Đã có app VietJack trên điện thoại, giải bài tập SGK, SBT Soạn văn, Văn mẫu, Thi online, Bài giảng....miễn phí. Tải ngay ứng dụng trên Android và iOS.
Theo dõi chúng tôi miễn phí trên mạng xã hội facebook và youtube:
Các bạn có thể mua thêm khóa học JAVA CORE ONLINE VÀ ỨNG DỤNG cực hay, giúp các bạn vượt qua các dự án trên trường và đi thực tập doanh nghiệp với Java. Khóa học có giá chỉ 400K, nhằm ưu đãi, tạo điều kiện cho sinh viên cho thể mua khóa học.
Nội dung khóa học gồm 16 chuơng và 100 video cực hay, học trực tiếp tại https://www.udemy.com/tu-tin-di-lam-voi-kien-thuc-ve-java-core-toan-tap/ Bạn nào có nhu cầu mua, inbox trực tiếp chị Thu, trợ lý anh Tuyền để hỗ trợ thanh toán qua mã QR ngân hàng Việt Nam, fb: https://www.facebook.com/Thule.59
Anh Tuyền, tác giả khóa học, là cựu sinh viên chương trình đào tạo kĩ sư tài năng của đại học Bách Khoa Hà Nội với hơn 5 năm kinh nghiệm đi làm thực tế doanh nghiệp và cũng là Founder website vietjack.com, web giáo dục phổ biến nhất Việt Nam hiện tại (năm 2025). Java cũng là ngôn ngữ lập trình dễ đi xin việc nhất hiện tại, với mức lương cao, hãy nâng cao kiến thức IT của bản thân mình vì một Việt Nam giàu mạnh.
Loạt bài hướng dẫn của chúng tôi dựa một phần trên nguồn tài liệu của: Tutorialspoint.com
Bài học Java phổ biến tại vietjack.com:
Nạp chồng phương thức (Overloading)
Constructor
ArrayList trong Java
Interface trong Java
Thread trong Java
247 bài tập Java
200 câu phỏng vấn Java
160 bài học ngữ pháp tiếng Anh hay nhất
155 bài học Java tiếng Việt hay nhất
100 bài học Android tiếng Việt hay nhất
247 bài học CSS tiếng Việt hay nhất
197 thẻ HTML cơ bản
297 bài học PHP
101 bài học C++ hay nhất
97 bài tập C++ có giải hay nhất
208 bài học Javascript có giải hay nhất
Học cùng VietJack
Dịch vụ nổi bật:
-
Giải bài tập SGK & SBT -
Tài liệu giáo viên -
Sách -
Khóa học -
Thi online -
Hỏi đáp
Trang web chia sẻ nội dung miễn phí dành cho người Việt.
Giải bài tập:
Lớp 1-2-3 Lớp 4 Lớp 5 Lớp 6 Lớp 7 Lớp 8 Lớp 9 Lớp 10 Lớp 11 Lớp 12 Lập trình Tiếng Anh
Chính sách
Chính sách bảo mật
Hình thức thanh toán
Chính sách đổi trả khóa học
Chính sách hủy khóa học
Tuyển dụng
Liên hệ với chúng tôi
Tầng 2, G4 - G5 Tòa nhà Five Star Garden, số 2 Kim Giang, Phường Khương Đình, Hà Nội
Phone: 084 283 45 85
Email: [email protected]
CÔNG TY TNHH ĐẦU TƯ VÀ DỊCH VỤ GIÁO DỤC VIETJACK
Người đại diện: Nguyễn Thanh Tuyền
Số giấy chứng nhận đăng ký kinh doanh: 0108307822, ngày cấp: 04/06/2018, nơi cấp: Sở Kế hoạch và Đầu tư thành phố Hà Nội.
2015 © All Rights Reserved.
Từ khóa » Khác Nhau Giữa Abstract Class Và Interface Trong Java
-
Sự Khác Nhau Giữa Abstract Class Và Interface - Học Java Miễn Phí ...
-
Sự Khác Nhau Giữa Interface Với Abstract Và Cách Sử Dụng Chúng ...
-
Khác Biệt Giữa Abstract Class Và Interface Trong Java - Viblo
-
Phân Biệt Abstract Và Interface Trong Học Lập Trình Java - Le Vu Nguyen
-
Abstract Class Và Interface Trong Java - GP Coder (Lập Trình Java)
-
Sự Khác Biệt Giữa Abstract Class Và Interface | JAVA DEV
-
So Sánh Abstract Class Và Interface - Học Lập Trình Cùng CodeGym
-
So Sánh Abstract Class Và Interface Trong Java. Ví Dụ Minh Họa.
-
Phân Biệt Lớp Abstract Và Interface Trong Java - Hoclaptrinh
-
Sự Khác Nhau Giữa Abstract Class Và Interface - Học Java - CodeGym
-
Sự Khác Nhau Giữa Abstract Class Với Interface Trong Java
-
Abstract Class Và Interface Trong Java - Openplanning
-
Sự Khác Nhau Giữa Abstract Class Và Interface Trong Java - Deft Blog
-
Abstract Class Là Gì? Phân Biệt Abstract Class Và Interface - 123Job