Mục lục bài viết

Kinh Nghiệm về Sự rất khác nhau giữa abstract và interface trong java 2022

Update: 2022-01-26 15:17:06,You Cần biết về Sự rất khác nhau giữa abstract và interface trong java. Bạn trọn vẹn có thể lại Comments ở cuối bài để Mình được tương hỗ.

712

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

Abstract class và interface đều được sử dụng để sở hữu được sự trừu tượng mà ở đó toàn bộ chúng ta trọn vẹ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:

Tóm lược đại ý quan trọng trong bài

  • 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 tồn tại 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 trọn vẹn có thể phục vụ nhu yếu nội dung setup cho phương thức của interface.Interface không thể phục vụ nhu yếu 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 một 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áo cáo

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 trọn vẹn có thể có những phương thức abstract hoặc non-abtract.

Lớp trừu tượng trọn vẹ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 tiêu 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) không cần thiết phải implement non-abstract methods, nhưng những method nào có abstract thì cần phải override. Trừ khi subclass cũng là abstract.

Cú pháp:

abstract class

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 tồn tại trình triển khai thì đó là phương thức trừu tượng (abstract method).
  • Nếu bạn muốn muốn một lớp chứa một phương thức rõ ràng nhưng bạn muố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 cũng trọn vẹ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 tồn tại định nghĩa, được theo sau bởi dấu chấm phẩy, không tồn tại dấu ngoặc nhọn theo sau.

Cú pháp:

abstract void ();

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 đó trọn vẹ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ụ nhu yếu 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ụ nhu yếu 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 cầ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 thông tin 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 thông tin 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 trọn vẹ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 trọn vẹn có thể có những phương thức abstract và non-abstract
Interface chỉ trọn vẹ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 trọn vẹ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 trọn vẹ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 trọn vẹn có thể phục vụ nhu yếu trình triển khai của Interface
Interface không phục vụ nhu yếu 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 trọn vẹn có thể đạt được trừu tượng hóa trọn vẹ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 trọn vẹn có thể hỏi về yếu tố rất khác nhau giữa abstract class và interface. Các bạn nên để ý những phương thức của interface là abstract 100%, trong abstract class trọn vẹn có thể có phương thức không phải abstract. Trong thiết kế ứng dụng, interface thường được vốn để làm 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 tiêu dùng. Các bạn cũng trọn vẹn có thể đọc thêm stackoverflow/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:

PDF

Abstract class và Interface

Lớp (Class) trong lập trình hướng đối tượng người tiêu 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 tiêu 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ẽ tương hỗ cho 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 tiêu 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 tiêu dùng trọn vẹ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 tiêu dùng thuộc lớp Car, một chiếc IphoneX là đối tượng người tiêu dùng thuộc lớp Mobile,…

Các ngôn từ hướng đối tượng người tiêu dùng như Java, C#,… tương hỗ khái niệm thừa kế. Kế thừa tức là một đối tượng người tiêu dùng trọn vẹ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 tiêu 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ụ nhu yếu 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ụ nhu yếu 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ợ cho 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 trọn vẹ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 rõ ràng 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 tồn tại phần thân phương thứcRead more

Reply
9
0
Chia sẻ

Video full hướng dẫn Share Link Tải Sự rất khác nhau giữa abstract và interface trong java ?

– Một số từ khóa tìm kiếm nhiều : ” Video full hướng dẫn 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 Down Sự rất khác nhau giữa abstract và interface trong java “.

Thảo Luận vướng mắc về Sự rất khác nhau giữa abstract và interface trong java

Bạn trọn vẹn có thể để lại phản hồi nếu gặp yếu tố chưa hiểu nhé.
#Sự #khác #nhau #giữa #abstract #và #interface #trong #java Sự rất khác nhau giữa abstract và interface trong java