Rate this post

Trong Java, abstract và interface là hai khái niệm khác nhau nhưng cùng được sử dụng để tạo ra các đối tượng có chức năng tương tự.

  • Abstract là một từ khóa được sử dụng để khai báo một lớp trừu tượng. Một lớp trừu tượng không thể được khởi tạo và chỉ có thể được kế thừa. Nó có thể chứa các phương thức abstract hoặc không abstract.
  • Interface là một từ khóa được sử dụng để khai báo một giao diện. Một giao diện chỉ chứa các phương thức abstract và không chứa thực thể. Lớp có thể implement một hoặc nhiều giao diện.

Khác biệt giữa abstract và interface chính là abstract lớp có thể chứa các phương thức có thực thể và thuộc tính, trong khi giao diện chỉ chứa các phương thức abstract và không chứa thực thể. Abstract lớp có thể kế thừa từ một hoặc nhiều lớp, trong khi giao diện chỉ có thể được implement bởi một hoặc nhiều lớp.

Các bài viết liên quan:

Ví dụ về sử dụng abstract:

abstract class Shape {
    int x, y;
    abstract void draw();
}

class Rectangle extends Shape {
    void draw() {
        //code to draw a rectangle
    }
}

Ví dụ về sử dụng interface:

interface Shape {
    void draw();
}

class Rectangle implements Shape {
    void draw() {
        //code to draw a rectangle
    }
}

Từ đó ta có thể thấy interface và abstract là hai khái niệm khác nhau trong java, nhưng cùng được sử dụng để tạo ra các đối tượng có chức năng tương tự.

phân biệt Abstract và interface

Abstract và interface là hai khái niệm khác nhau trong Java mà được sử dụng để tạo ra các đối tượng có chức năng tương tự nhưng có một số khác biệt chính giữa hai khái niệm này.

  1. Khác nhau trong việc khai báo: Abstract là một từ khóa được sử dụng để khai báo một lớp trừu tượng, trong khi Interface là một từ khóa được sử dụng để khai báo một giao diện.
  2. Khác nhau trong việc kế thừa: Abstract class có thể kế thừa từ một hoặc nhiều lớp, trong khi Interface chỉ có thể được implement bởi một hoặc nhiều lớp.
  3. Khác nhau trong việc chứa phương thức: Abstract class có thể chứa các phương thức có thực thể và thuộc tính, trong khi Interface chỉ chứa các phương thức abstract và không chứa thực thể.
  4. Khác nhau trong việc sử dụng: Abstract class được sử dụng để khai báo một lớp trừu tượng và có thể kế thừa từ một hoặc nhiều lớp, trong khi Interface được sử dụng để khai báo một giao diện và chỉ có thể được implement bởi một hoặc nhiều lớp. Abstract class có thể chứa phương thức có thực thể và thuộc tính, trong khi Interface chỉ chứa các phương thức abstract và không chứa thực thể.
  5. Sử dụng abstract class khi ta muốn chia sẻ mã giữa các lớp con, còn Interface là khi ta muốn chỉ định các phương thức mà các lớp con phải thực hiện.
  6. Abstract class có thể có constructor, còn interface không có constructor.
  7. Với abstract class, các lớp con có thể override hoặc không override các phương thức của lớp cha, trong khi với interface, các lớp con phải override tất cả các phương thức của interface.

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Contact Me on Zalo
Call now