Từ khoá abstract trong java

Trong java abstract là một non-access modifier chỉ áp dụng cho classmethod, không áp dụng cho biến. Chúng ta đã biết access-modifier quy định phạm vi truy cập của các biến method, class. Thì non-access ở đây hiểu nôn ta là không thể truy cập hoặc khởi tạo chúng được vì chúng là những thứ trừu tượng.

Abstract được sử dụng để triển khai tính trừu tượng trong java một trong những tính chất quan trọng nhất của lập trình hướng đối tượng.

Abstract class

Như ở phần trên mình đã đề cập abstract được sử dụng cho class và method. Ở phần này abstract áp dụng class biến class đó trở thành class trừu tượng, nó không thể khởi tạo mà chỉ được thừa kế bởi các class khác. Bên trong abstract class sẽ có cả những method được triển khai và những abstract method(chúng ta sẽ tìm hiểu ở phần sau), các class khác thưà kế từ abstract class bắt buộc phải triển khai các abstract method hoặc nếu chúng là abstract class thì không cần implement.

Cú pháp 

abstract class <Name> {
   // body of class
}

Ví dụ

abstract class Shape {
    abstract void show();
}

class Rectangle extends Shape{

    @Override
    void show() {
        System.out.println("Show");
    }
}

public class Main {

    public static void main(String[] args) {
        Shape rec = new Rectangle();
        rec.show();
    }
}

Output: Show

Nếu là abstract method extends một abstract method thì chúng không nhất thiết phải implement các abstract method.

abstract class Shape {
    abstract void show();
}

abstract class Rectangle extends Shape{
    // body class
}

Abstract method

Ở trên chúng ta đã nói khá nhiều về abstract method, chúng là những method trừu tượng mà những class thừa kế class chứa nó thì phải triển khai chúng. 

abstract class Shape {
    abstract void show();
}

class Rectangle extends Shape{

    @Override
    void show() {
        System.out.println("Show");
    }
}

Như ví dụ này chúng Rectangle bắt buộc phải implement show() nếu không thì trình biên dịch sẽ báo lỗi các bạn nhé.

Cú pháp khai báo một abstract method

abstract type method-name(parameter-list);

Note:

  • Một abstract class có thể có nhiều abstract method.
  • Abstract method chỉ được khai báo bên trong abstract class.

Kết 

Các abstract class không thể khởi tạo, hiểu đơn giản thì các abstract class này chỉ là những khuôn mẫu được đề ra, chúng ta nhiều class con khác thừa kế nó vì thế nên chúng ta chỉ có thể khởi tạo các instance của các class con không phải abstract class.

Các abstract class có thể thừa kế lẫn nhau, và chúng không cần implement các abstract method của class cha. 

 Bạn sẽ không bao giờ thấy abstract và final đi chung với nhau, vì trong java final đại diễn cho một thứ gì đó không thể thay đổi và đó chính là kết quả cuối cùng trong khi abstract lại là một cách để đạt được trừu tượng hoá, các sub-class sẽ sử dụng lại các method, biến của super-class.

0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x