So sánh Abstract class và Interface

Lớp trừu tượng (Abstract Class)

Là một lớp nhưng không thể tạo ra thực thể. Abstract class có thể chứa hoặc không chứa phương thức abstract – một phương thức chỉ có khai báo mà không chứa cài đặt.

abstract class Cars
{
	int gas;
	int getGas()
	{
	    return this.gas;
	}

	abstract void run();
}

class Merc extends Cars
{
   void run()
   {
        print("Fast");
   }
}

Giải thích: Trong phần đầu tiên của mã, khai báo một lớp trừu tượng Cars. Các phương thức của lớp trừu tượng Cars sẽ được kế thừa bởi các lớp con.

Interface

Một interface không phải là một lớp (class), giống như lớp trừu tượng. Nó chứa các phương thức mà không phần thân. Một interface không thể tự làm bất cứ điều gì. Interface như một khuôn mẫu. Với ngôn ngữ Java không hỗ trợ đa kế thừa nhưng có thể triển khai nhiều interface.

interface Cars
{
     void run();
     int getGas();
}
class Merc implements Cars
{
    int gas;
    void run()
    {
    print("Faster");
    }
    int getGas()
    {
    return this.gas;
    }
}

Giải thích: Chúng ta có thể thấy, các phương thức của interface không có phần thân, chỉ xác định kiểu dữ liệu trả về và tên phương thức, không giống như lớp trừu tượng mà chúng ta đã khai báo trước đó.

Sự khác biệt giữa Abstract class và Interface

Một interface chứa một tập hợp các phương thức. Một lớp implements interface phải triển khai các phương thức này.

Một lớp trừu tượng, giống như một interface, sẽ chứa các phương thức. Tuy nhiên, sẽ có ít nhất một phương thức đã hoàn thành tức là phương thức có phần thân. Đây là một sự khác biệt chính giữa abstract class và interface.

Ngoài sự khác biệt lớn này, đây là một số khác biệt giữa Abstract class và Interface

Abstract classInterface
Lớp trừu tượng có thể có các phương thức trừu tượng và không trừu tượngChỉ có phương thức trừu tượng
Không hỗ trợ đa kế thừaHỗ trợ đa kế thừa
Có thể có các biến final, non-final, static và non-staticChỉ có các biến static và final
Có thể implement interfaceKhông thể extents lớp abstract
Từ khóa abstract được sử dụng để khai báo lớp trừu tượngTừ khóa interface được sử dụng để khai báo giao diện
Một lớp trừu tượng có thể extents một lớp Java khác và thực hiện nhiều interfaceMột interface chỉ có thể implement interface khác
Có thể được kế thừa bằng cách sử dụng từ khóa “extends”Các lớp triển khai interface sử dụng từ khóa implements
Một lớp trừu tượng có thể có phạm vi truy cập là private, protected,…Các phương thức của interface được mặc định là public
public abstract class Shape {      public abstract void draw();}public interface Drawable {void draw();}
Related Posts
Lịch sử ngôn ngữ lập trình Java

Java (phiên âm Tiếng Việt: "Gia-va") là một ngôn ngữ lập trình hướng đối tượng, dựa trên lớp được thiết Read more

Phím tắt trong Eclipse giúp tăng năng suất coding

Các phím tắt sẽ giúp tốc độ coding của bạn nhanh hơn rất nhiều, hơn nữa format code của bạn Read more

Lập trình Hướng đối tượng(OOP)

Lập trình hướng đối tượng (tiếng Anh: Object-oriented programming, viết tắt: OOP) là một mẫu hình lập trình dựa trên Read more

Kiểu dữ liệu Nguyên thủy(Primitive)

1. Tổng quan Trong ngôn ngữ lập trình Java có 2 kiểu dữ liệu chúng ta cần nắm và phân Read more

Hãy bình luận đầu tiên

Để lại một phản hồi