Chào mừng bạn đến blog Ynghialagi.com Trang Chủ

Table of Content

Bài đăng

Sự khác nhau giữa abstract và interface trong java 2022

Thủ Thuật Hướng dẫn Sự rất khác nhau giữa abstract và interface trong java Mới Nhất


You đang tìm kiếm từ khóa Sự rất khác nhau giữa abstract và interface trong java được Update vào lúc : 2022-01-26 15:37:02 . Với phương châm chia sẻ Kinh Nghiệm về trong nội dung bài viết một cách Chi Tiết 2022. Nếu sau khi tìm hiểu thêm Post vẫn ko hiểu thì hoàn toàn có thể lại Comments ở cuối bài để Admin lý giải và hướng dẫn lại nha.


Sự rất khác nhau giữa Abstract class và Interface


Abstract class và interface đều được sử dụng để đã có được sự trừu tượng mà ở đó toàn bộ chúng ta hoàn toàn có thể khai báo những phương thức trừu tượng. Nhưng có một vài sự rất khác nhau giữa abstract class và interface được liệt kê trong bảng sau:


Nội dung chính


  • Sự rất khác nhau giữa Abstract class và Interface


  • Khác biệt giữa abstract class và interface trong java

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

  • Đặc điểm của lớp trừu tượng (abstract class)

  • Phương thức trừu tượng trong Java

  • Ví dụ về lớp trừu tượng và phương thức trừu tượng

  • Một vài lưu ý

  • Phân biệt lớp abstract và Interface trong Java

  • Ví dụ về lớp trừu tượng và Interface trong Java

  • Abstract class và Interface

  • Ví dụ về Abstract class và Interface trong JAVA

  • Tổng kết

  • 4 Loại Access Modifiers trong JAVA

  • Package trong JAVA

  • Abstract class trong JAVA

  • Interface trong JAVA


  • Abstract classInterface1) Abstract class có phương thức abstract (không còn thân hàm) và phương thức non-abstract (có thân hàm).Interface chỉ có phương thức abstract. Từ java 8, nó có thêm những phương thức default và static.2) Abstract class không tương hỗ đa thừa kế.Interface có tương hỗ đa thừa kế3) Abstract class có những biến final, non-final, static and non-static.Interface chỉ có những biến static và final.4) Abstract class hoàn toàn có thể phục vụ nội dung setup cho phương thức của interface.Interface không thể phục vụ nội dung setup cho phương thức của abstract class.5) Từ khóa abstract được sử dụng để khai báo abstract class.Từ khóa interface được sử dụng để khai báo interface.6) Ví dụ:
    public abstract class Shape
    public abstract void draw();
    Ví dụ:
    public interface Drawable
    void draw();


    Đơn giản để hiểu, đó là abstract class đã có được trừu tượng 1 phần (0 tới 100%), còn interface đã có được trừu tường toàn phần (100%).




    Khác biệt giữa abstract class và interface trong java



    Bài đăng này đang không được update trong 5 năm


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


    Đặc điểm của lớp trừu tượng (abstract class)


    Một lớp được khai báo với từ khóa abstract là lớp trừu tượng (abstract class).


    Lớp trừu tượng hoàn toàn có thể có những phương thức abstract hoặc non-abtract.


    Lớp trừu tượng hoàn toàn có thể khai báo 0, 1 hoặc nhiều method trừu tượng bên trong.


    Không thể khởi tạo 1 đối tượng người dùng trực tiếp từ một class trừu tượng.


    Một lớp thừa kế từ lớp trừu tượng (subclass – lớp con) tránh việc phải implement non-abstract methods, nhưng những method nào có abstract thì nên phải override. Trừ khi subclass cũng là abstract.


    Cú pháp:


    <PhamViTruyCap> abstract class <TenLop>


    Phương thức trừu tượng trong Java


    • Một phương thức được khai báo là abstract và không còn trình triển khai thì đó là phương thức trừu tượng (abstract method).

    • Nếu bạn muốn một lớp chứa một phương thức rõ ràng nhưng bạn muốn triển khai thực sự phương thức đó để được quyết định hành động bởi những lớp con, thì bạn hoàn toàn có thể khai báo phương thức đó trong lớp cha ở dạng abstract.

    • Từ khóa abstract được sử dụng để khai báo một phương thức dạng abstract. Phương thức abstract sẽ không còn còn định nghĩa, được theo sau bởi dấu chấm phẩy, không còn dấu ngoặc nhọn theo sau.

    Cú pháp:


    <PhamViTruyCap> abstract void <TenPhuongThuc>();


    Ví dụ về lớp trừu tượng và phương thức trừu tượng


    Ví dụ: Viết chương trình vẽ một hình bất kỳ với red color, sao cho cách sử dụng là giống nhau, bất kể đó là hình gì. Hình đó hoàn toàn có thể làhình chữ nhật (rectangle), hình tròn trụ (circle), tam giác (triangle), đường (line), …


    Với yêu cầu trên, tôi tạo một lớp trừu tượng Shape. Lớp này phục vụ một phương thức trừu tượng draw, phương thức này để đảm nói rằng toàn bộ những hình đều phải có cùng cách sử dụng (draw). Ngoài ra, có phương thức không trừu tượng getColor để phục vụ màu sử dụng chung cho toàn bộ những hình. Tiếp theo, tôi tạo 2 lớp Rectangle và Circle thừa kế từ lớp Shape, 2 lớp này còn có những cách xử lý draw rất khác nhau. Cuối cùng, tôi tạo classShapeApp, gọi phương thức draw để vẽ hình theo yêu cầu.


    Shape.java


    public abstract class Shape

    private String color = “red”;


    public Shape()


    public abstract void draw();


    public String getColor()

    return color;


    Rectangle.java


    public class Rectangle extends Shape


    @Override

    public void draw()

    System.out.println(“Draw ” + super.getColor() + ” rectangle”);


    Circle.java


    public class Circle extends Shape


    @Override

    public void draw()

    System.out.println(“Draw ” + super.getColor() + ” circle”);


    ShapeApp.java


    public class ShapeApp

    public static void main(String[] args)

    Shape rect = new Rectangle();

    rect.draw();

    System.out.println(“—“);

    Shape circle = new Circle();

    circle.draw();


    Kết quả:


    Draw red rectangle



    Draw red circle


    Một vài lưu ý


    Lớp con nên phải setup (implement) toàn bộ những phương thức trừu tượng của lớp cha


    Bạn nhận được tin báo lỗi nếu lớp con không setup (implement) toàn bộ những phương thức trừu tượng của lớp cha: The type Triangle must implement the inherited abstract method Shape.draw().



    Không thể khởi tạo trực tiếp một lớp trừu tượng


    Bạn nhận được tin báo lỗi khi cố ý khởi tạo một lớp trừu tượng: Cannot instantiate the type Shape.



    Phân biệt lớp abstract và Interface trong Java


    Cả lớp abstract và Interface được sử dụng để thu được xem trừu tượng, từ đó toàn bộ chúng ta hoàn toàn có thể khai báo những 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 luôn có thể có những điểm rất 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 hoàn toàn có thể có những phương thức abstract và non-abstract

    Interface chỉ hoàn toàn có thể có phương thức abstract


    2

    Lớp trừu tượng không tương hỗ đa thừa kế

    Interface tương hỗ đa thừa kế


    3

    Lớp trừu tượng hoàn toàn có thể có những biến final, non-final, static và non-static

    Interface chỉ có những biến static và final

    4

    Lớp trừu tượng hoàn toàn 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 hoàn toàn có thể phục vụ trình triển khai của Interface

    Interface không phục vụ trình triển khai rõ ràng 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 lúc đó Interface hoàn toàn có thể đạt được trừu tượng hóa hoàn toàn (100%).


    Quảng cáo


    Ví 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áo


    Chạy chương trình trên sẽ cho kết quả:


    Toi la a

    Toi la b

    Toi la c

    Toi la d


    Ps: Đi phỏng vấn hoàn toàn có thể hỏi về sự việc rất khác nhau giữa abstract class và interface. Các bạn nên để ý quan tâm những phương thức của interface là abstract 100%, trong abstract class hoàn toàn có thể có phương thức không phải abstract. Trong thiết kế ứng dụng, interface thường được sử dụng để chỉ 2 hay nhiều class cùng thao tác gì đó (ví dụ cùng in – Printable), trong lúc abstract class thường hướng tới quan hệ cha con trong lập trình hướng đối tượng người dùng. Các bạn hoàn toàn có thể đọc thêm https://stackoverflow.com/questions/479142/when-to-use-an-interface-instead-of-an-abstract-class-and-vice-versa


    Bài học Java phổ cập tại vietjack.com:


    PDF


    Abstract class và Interface


    Lớp (Class) trong lập trình hướng đối tượng người dùng là một khuôn mẫu hoặc một bản thiết kế, quy mô mô phỏng những đối tượng người dùng.



    • Các khóa học lập. trình trò chơi mobile trực tuyến


    • Những kiến thức và kỹ năng cơ bản về lập. trình web cần nắm vững


    • 10 kênh Youtube học tiếng Anh sẽ hỗ trợ bạn tăng cấp cải tiến vượt bậc trong năm 2022


    • 6 ngành nghề hot năm 2022, thời cơ tăng trưởng trong 5-10 năm tới


    • Lập trình máy tính là gì? Khóa học lập. trình máy tính cho những người dân mới khởi đầu

    Đối tượng là những thể hiện của lớp, một đối tượng người dùng là một sự tượng trưng cho một thực thể, hoặc là thực thể tồn tại trong toàn thế giới đời thực hoặc thực thể mang tính chất chất khái niệm. Một đối tượng người dùng hoàn toàn có thể tượng trưng cho cái gì đó rõ ràng.


    Ví dụ: một chiếc Mercedes Benz là một đối tượng người dùng thuộc lớp Car, một chiếc IphoneX là đối tượng người dùng thuộc lớp Mobile,…


    Các ngôn từ hướng đối tượng người dùng như Java, C#,… tương hỗ khái niệm thừa kế. Kế thừa nghĩa là một đối tượng người dùng hoàn toàn có thể được thừa kế những hành vi và phương thức của lớp. Bất cứ lúc nào bạn tạo đối tượng người dùng mới của một lớp, bạn nói rằng bạn đang khởi tạo nó.


    Ví dụ về Abstract class và Interface trong JAVA


    Hãy xem một ví dụ đơn thuần và giản dị trong số đó toàn bộ chúng ta đang sử dụng cả interface và lớp trừu tượng.


    // Creating interface that has 4 methods

    interface A

    void a(); // mặc định là public abstract

    void b();

    void c();

    void d();


    // Tạo abstract method và phục vụ khai triển cho một phương thức của A

    abstract class B implements A

    public void c()

    System.out.println(“Tôi là C”);


    // Tạo class con của Abstract class B và phục vụ khai triển rõ ràng cho những phương thức còn sót lại

    class M extends B

    public void a()

    System.out.println(“Tôi là a”);


    public void b()

    System.out.println(“Tôi là b”);


    public void d()

    System.out.println(“Tôi là d”);


    // Tạo class thử nghiệm và thử gọi phương thức của interface A

    class Test

    public static void main(String args[])

    A a = new M();

    a.a();

    a.b();

    a.c();

    a.d();


    Kết quả:


    Tôi là a

    Tôi là b

    Tôi là C

    Tôi là d


    Tổng kết


    Như vậy là trong và viết này tôi đã hỗ trợ bạn tìm làm rõ sự rất khác nhau của Abstract class và Interface trong Java.


    Chúc bạn học tập tốt.


    4 Loại Access Modifiers trong JAVA


    Java cơ bản niithanoi – 28/12/20210Access Modifiers trong Java chỉ định kĩ năng / Lever truy vấn hoặc phạm vi của một field, method, constructor hoặc class. Có 4 loại: private, default, protected, publicRead more


    Package trong JAVA


    Java cơ bản niithanoi – 24/12/20210Package trong Java hoàn toàn có thể được phân loại theo hai dạng, built-in package (có sẵn) và user-defined package (gói do người tiêu dùng định nghĩa)Read more


    Abstract class trong JAVA


    Java cơ bản niithanoi – 29/12/20200Trừu tượng là một quy trình ẩn những cụ ông cụ bà thể triển khai và chỉ hiển thị hiệu suất cao cho những người dân tiêu dùng. Cùng mình học cách sử dụng Abstract class trong JavaRead more


    Interface trong JAVA


    Tự học Java niithanoi – 28/12/20200Interface trong Java là một cơ chế để đạt được sự trừu tượng. Có thể chỉ có những phương thức trừu tượng trong Interface, không còn phần thân phương thứcRead more


    Reply

    9

    0

    Chia sẻ


    Chia Sẻ Link Download Sự rất khác nhau giữa abstract và interface trong java miễn phí


    Bạn vừa tìm hiểu thêm Post Với Một số hướng dẫn một cách rõ ràng hơn về Clip Sự rất khác nhau giữa abstract và interface trong java tiên tiến và phát triển nhất Chia SẻLink Download Sự rất khác nhau giữa abstract và interface trong java Free.



    Hỏi đáp vướng mắc về Sự rất khác nhau giữa abstract và interface trong java


    Nếu sau khi đọc nội dung bài viết Sự rất khác nhau giữa abstract và interface trong java vẫn chưa hiểu thì hoàn toàn có thể lại Comment ở cuối bài để Tác giả lý giải và hướng dẫn lại nha

    #Sự #khác #nhau #giữa #abstract #và #interface #trong #java

Đăng nhận xét