Header Ads Widget

Responsive Advertisement

Nổi bật

6/recent/ticker-posts

Abstract class trong Java



        Abstract class trong Java tương tự như interface ngoại trừ việc nó có thể chứa thực thi phương thức mặc định. Một Abstract class có thể có một phương thức trừu tượng mà không có phần thân và nó cũng có thể có các phương thức có thực thi.

Từ khóa abstract được sử dụng để tạo một lớp và phương thức trừu tượng. Không thể khởi tạo Abstract class trong java. Một Abstract class chủ yếu được sử dụng để cung cấp cơ sở cho các lớp con để mở rộng và triển khai các phương thức trừu tượng và ghi đè hoặc sử dụng các phương thức được triển khai trong Abstract class.


    Abstract class trong Java


    Đây là một ví dụ đơn giản về một Abstract class trong Java.

    package com.journaldev.design;

    //abstract class
    public abstract class Person {

      
    private String name;
      
    private String gender;

      
    public Person(String nm, String gen){
         
    this.name=nm;
         
    this.gender=gen;
       }

      
    //abstract method
      
    public abstract void work();

      
    @Override
      
    public String toString(){
         
    return "Name="+this.name+"::Gender="+this.gender;
       }

      
    public void changeName(String newName) {
         
    this.name
    = newName;
       }
    }


    Lưu ý rằng work() là một phương thức trừu tượng và nó không có phần thân. Đây là một ví dụ về lớp cụ thể mở rộng một Abstract class trong java.

    package com.journaldev.design;

    public class Employee extends Person {

      
    private int empId;

      
    public Employee(String nm, String gen, int id) {
         
    super(nm, gen);
         
    this.empId=id;
       }

      
    @Override
      
    public void work() {
         
    if(empId == 0){
            
    System.out.println("Not working");
          }
    else{
            
    System.out.println("Working as employee!!");
          }
       }

      
    public static void main(String args[]){
         
    //coding in terms of abstract classes
         
    Person student = new Employee("Dove","Female",0);
          Person
    employee = new Employee("Pankaj","Male",123);
         
    student.work();
         
    employee.work();
         
    //using method implemented in abstract class - inheritance
         
    employee.changeName("Pankaj Kumar");
         
    System.out.println(employee
    .toString());
       }

    }



    Lưu ý rằng lớp con Employee kế thừa các thuộc tính và phương thức của lớp cha Person sử dụng tính năng kế thừa trong java .


    Cũng lưu ý việc sử dụng chú thích Override trong lớp Nhân viên. Đọc thêm để biết lý do tại sao chúng ta nên luôn sử dụng chú thích Override khi ghi đè một phương thức.

    Các điểm quan trọng của Abstract class trong Java

    ü  Từ khóa abstract được sử dụng để tạo một Abstract class trong java.
    ü  Không thể khởi tạo Abstract class trong java.
    ü  Chúng ta có thể sử dụng từ khóa abstract để tạo một phương thức trừu tượng, một phương thức trừu tượng không có phần thân.
    ü  Nếu một lớp có các phương thức trừu tượng, thì lớp đó cũng phải là lớp trừu tượng bằng cách sử dụng từ khóa abstract, nếu không nó sẽ không biên dịch.
    ü  Không nhất thiết đối với một Abstract class phải có phương thức trừu tượng. Chúng ta có thể đánh dấu một lớp là trừu tượng ngay cả khi nó không khai báo bất kỳ phương thức trừu tượng nào.
    ü  Nếu Abstract class không có bất kỳ triển khai phương thức nào, tốt hơn nên sử dụng interface vì java không hỗ trợ đa kế thừa.
    ü  Lớp con của Abstract class trong java phải triển khai tất cả các phương thức trừu tượng trừ khi lớp con cũng là một Abstract class.
    ü  Tất cả các phương thức trong một interface là trừu tượng hoàn toàn trừ khi các phương thức interfacestatic hoặc default. Phương thức static và phương thức default trong interface được thêm vào trong Java 8, để biết thêm chi tiết, hãy đọc các thay đổi giao diện Java 8 .
    ü  Abstract class trong Java có thể triển khai các interface mà không cần cung cấp việc triển khai các phương thức interface.
    ü  Abstract class trong Java được sử dụng để cung cấp triển khai phương thức chung cho tất cả các lớp con hoặc cung cấp triển khai mặc định.
    Chúng ta có thể chạy Abstract class trong java giống như bất kỳ lớp nào khác nếu nó có phương thức main().

    Đó là tất cả đối với một Abstract class trong Java.

    Bài viết được dịch lại từ journaldev.com. Cảm ơn bạn đã xem bài viết! Nếu có bất cứ lỗi sai nào trong bài bạn có thể góp ý cho chúng tôi bằng cách bình luận bên dưới.

    Đăng nhận xét

    0 Nhận xét