Tin tổng hợp

Lớp Trừu Tượng – Lớp Abstract Trong Java – viettingame

Lớp 1-2-3

Lớp 1

Lớp 2

Vở bài tập

Lớp 3

Vở bài tập

Đề kiểm tra

Lớp 4

Sách giáo khoa

Sách/Vở bài tập

Đề kiểm tra

Lớp 5

Sách giáo khoa

Sách/Vở bài tập

Đề kiểm tra

Lớp 6

Sách giáo khoa

Sách/Vở bài tập

Đề kiểm tra

Chuyên đề & Trắc nghiệm

Lớp 7

Sách giáo khoa

Sách/Vở bài tập

Đề kiểm tra

Chuyên đề & Trắc nghiệm

Lớp 8

Sách giáo khoa

Sách/Vở bài tập

Đề kiểm tra

Chuyên đề & Trắc nghiệm

Lớp 9

Sách giáo khoa

Sách/Vở bài tập

Đề kiểm tra

Chuyên đề & Trắc nghiệm

Lớp 10

Sách giáo khoa

Sách/Vở bài tập

Đề kiểm tra

Chuyên đề & Trắc nghiệm

Lớp 11

Sách giáo khoa

Sách/Vở bài tập

Đề kiểm tra

Chuyên đề & Trắc nghiệm

Lớp 12

Sách giáo khoa

Sách/Vở bài tập

Đề kiểm tra

Chuyên đề & Trắc nghiệm

IT

Ngữ pháp Tiếng Anh

Lập trình Java

Phát triển web

Lập trình C, C++, Python

Trung tâm dữ liệu

*

Khóa học JavaJava cơ bảnKhái niệm Hướng đối tượngFile và I/O trong JavaString trong JavaXử lý ngoại lệ (Exception Handling)Cấu trúc dữ liệu trong JavaCollection trong JavaJava nâng caoTài liệu xem thêm Java
Lớp trừu tượng – Abstract Class trong Java
Trang trước
Trang sau

Một lớp được khai báo với từ khóa abstract được xem như là lớp abstract trong Java. Nó mà thậm chí với những phương thức abstract hoặc non-abtract. Trước lúc tìm hiểu về lớp trừu tượng trong Java, các bạn cần hiểu tính trừu tượng trong Java là gì.

Đang xem: Lớp trừu tượng

Tính trừu tượng (Abstraction) trong Java

Tính trừu tượng là một tiến trình ẩn những cụ thể trình triển khai và chỉ hiển thị tính năng tới người sử dụng. Nói cách khác, nó chỉ hiển thị những thứ quan trọng tới người sử dụng và ẩn những cụ thể nội tại, ví dụ: để gửi tin nhắn, người sử dụng chỉ việc soạn text và gửi tin. Chúng ta ko biết tiến trình xử lý nội tại về phân phối tin nhắn. Tính trừu tượng giúp đỡ bạn trọng tâm hơn vào đối tượng người tiêu dùng thay vì như thế ưa chuộng tới cách nó tiến hành.

Lớp abstract trong Java

Một lớp được khai báo là abstract thì này là lớp trừu tượng. Nó rất cần phải kế thừa và phương thức của nó được triển khai. Nó ko thể được khởi tạo.

Sử dụng từ khóa abstract để khai báo một lớp abstract. Từ khóa này xuất hiện trước từ khóa class trong khai báo lớp. Ví dụ:

abstract class A{} Mang hai phương pháp để đạt được tính trừu tượng hóa trong Java:

Lớp abstract (0 tới 100%)

Interface (100%)

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ì này là phương thức trừu tượng.

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

Từ khóa abstract được sử dụng để khai báo một phương thức dạng abstract. Một phương thức abstract không tồn tại thân phương thức.

Phương thức abstract sẽ không 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 móc ôm theo sau:

abstract void printStatus(); // Khai bao phuong thuc voi tu khoa abstract va khong co than phuong thuct

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

Trong ví dụ này, Bike là lớp trừu tượng chỉ chứa một phương thức trừu tượng là run. Trình triển khai của nó được cung ứng bởi lớp Honda.

// lop truu tuong Bikeabstract class Bike{ abstract void run(); // phuong thuc truu tuong voi tu khoa abstract} // lop Honda4 ke thua lop truu tuong Bike class Honda4 extends Bike{ void run(){ System.out.println(“Dang chay mot cach an toan..”); } // phuong thuc main() public static void main(String args){ Bike obj = new Honda4(); obj.run(); } }

Kế thừa lớp Abstract trong Java

Trong ví dụ này, Shape là lớp trừu tượng, trình triển khai của nó được cung ứng bởi lớp Rectangle và lớp Circle. Hai lớp này kế thừa lớp trừu tượng Shape.

File: TestAbstraction1.java

// lop truu tuong Shapeabstract class Shape{ abstract void draw(); } //Trong tinh huong nay, trinh trien khai duoc cung cap boi ai do, vi du: nguoi su dung cuoi cung nao do class Rectangle extends Shape{ void draw(){ System.out.println(“Ve hinh chu nhat”); } } class Circle1 extends Shape{ void draw(){ System.out.println(“Ve hinh tron”);} } //Trong tinh huong nay, phuong thuc duoc goi boi lap trinh vien hoac nguoi dung class TestAbstraction1{ public static void main(String args){ Shape s=new Circle1(); //Trong tinh huong nay, doi tuong duoc cung cap thong qua phuong thuc, chang han nhu getShape() s.draw(); } } Lúc mình tạo sự thể hiện của lớp Rectangle (tại dòng Shape s=new Circle1();), phương thức draw() của lớp Rectangle sẽ được triệu hồi.

Mà thậm chí các bạn chưa quen thuộc với phương thức viết chung toàn bộ những lớp trong cùng một file như trên và mà thậm chí làm cho chúng ta rối thị lực. Trong ví dụ tiếp mình sẽ trình diễn riêng rẽ từng file cho chúng ta dễ hiểu.

Xem thêm: Nghĩa Của Từ : Confused Là Gì ? Nghĩa Của Từ Confused Trong Tiếng Việt

Tất nhiên, trong lúc lập trình bất kể từ ngữ nào, mỗi Class mà chúng ta tạo ra đều phục vụ cho một mục đích rõ ràng nào khác. Do đó, chúng ta nên tạo những Class riêng rẽ trong từng file, đừng làm như trên nhé.

Ví dụ khác về Kế thừa lớp Abstract trong Java

Trước nhất mình với một lớp trừu tượng Ngân hàng với phương thức abstract mang tên là getRateOfInterest() với mục đích để lấy lãi suất của ngân hàng nói tóm lại.

File: Ngân hàng.java

abstract class Ngân hàng{ abstract int getRateOfInterest(); } Tiếp đó, mình với hai lớp SBI và PNB thay mặt cho tên những ngân hàng và hai lớp này kế thừa lớp trừu tượng Ngân hàng ở trên. Vì như thế hai lớp này kế thừa lớp trừu tượng Ngân hàng nên cả hai lớp phải cung ứng trình triển khai rõ ràng cho phương thức getRateOfInterest().

File: SBI.java

class SBI extends Ngân hàng{ int getRateOfInterest(){return 7;} // bat buoc phai cung cap trinh trien khai cua getRateOfInterest} File: PNB.java

class PNB extends Ngân hàng{ int getRateOfInterest(){return 8;} // bat buoc phai cung cap trinh trien khai cua getRateOfInterest} Và sau cuối, lớp TestBank với phương thức main() sẽ có được nội dung như sau:

class TestBank{ public static void main(String args){ // Tao mot doi tuong SBI moi Ngân hàng b=new SBI(); //Neu doi tuong la PNB, phuong thuc cua PNB se duoc trieu hoi int interest=b.getRateOfInterest(); //Trieu hoi phuong thuc cua SBISystem.out.println(“Ti le lai suat la: “+interest+” %”); }} Lớp trừu tượng mà thậm chí với thành viên dữ liệu, phương thức trừu tượng, constructor, và mà thậm chí cả phương thức main().

File: TestAbstraction2.java

//vi du ve lop abstract ma co than phuong thuc abstract class Bike{ Bike(){ System.out.println(“bike duoc tao”); } abstract void run(); void changeGear(){ System.out.println(“gear duoc thay doi”); } } class Honda extends Bike{ void run(){ System.out.println(“dang chay mot cach an toan..”); } } class TestAbstraction2{ public static void main(String args){ Bike obj = new Honda(); obj.run(); obj.changeGear(); } } Qui tắc: Nếu khách hàng đang kế thừa bất kể lớp trừu tượng nào mà với phương thức trừu tượng, thì các bạn phải hoặc cung ứng trình triển khai của những phương thức của lớp trừu tượng này.

Lớp trừu tượng cũng mà thậm chí được sử dụng để cung ứng một trong những trình triển khai của Interface. Trong trường hợp này, người sử dụng sau cuối ko thể bị nên phải ghi đè toàn bộ phương thức của Interface đó.

Ghi chú: Nếu khách hàng mới học về Java, thì học Interface trước và bỏ qua ví dụ này.

// mot interface Ainterface A{ void a(); void b(); void c(); void d(); } // lop truu tuong B ke thua interface A abstract class B implements A{ //trong vi du nay, lop truu tuong B co the chi cung cap trinh trien khai phuong thuc c()public void c(){ System.out.println(“Toi la C”); } } // lop M ke thua lop truu tuong B class M extends B{ // bat buoc phai trien khai cac phuong thuc a(), b(), c()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”); } } // lop Test5 chua phuong thuc main() class Test5{ public static void main(String args){ A a=new M(); a.a(); a.b(); a.c(); a.d(); }} Ps: Đi làm việc mà thậm chí hỏi về sự việc không giống nhau giữa abstract class và interface. Những chúng ta nên ghi chú những phương thức của interface là abstract 100%, trong abstract class mà thậm chí với phương thức ko 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ệ phụ vương con trong lập trình hướng đối tượng người tiêu dùng. Chúng ta mà thậm chí đọc thêm https://stackoverflow.com/questions/479142/when-to-use-an-interface-instead-of-an-abstract-class-and-vice-versa

Đã với app viettingame.com trên điện thoại cảm ứng, giải bài tập SGK, SBT Soạn văn, Văn mẫu, Thi trực tuyến, Bài giảng….miễn phí. Tải ngay ứng dụng trên Android và iOS.

Xem thêm: 5 trò chơi Cờ Tướng Offline Khó Nhất Cho Pc Chia Sẻ Từ Cao Thủ, Cờ Tướng Khó Nhất

*
*

Chúng ta mà thậm chí sắm thêm khóa học JAVA CORE ONLINE VÀ ỨNG DỤNG cực hay, giúp chúng ta vượt qua những dự án công trình trên trường và đi thực tập Java. Khóa học với giá chỉ 300K, nhằm mục đích ưu đãi, tạo ĐK cho sinh viên cho thể sắm khóa học.

Nội dung khóa học gồm 16 chuơng và 100 video cực hay, học trực tiếp tại https://www.udemy.com/tu-tin-di-lam-voi-kien-thuc-ve-java-core-toan-tap/Chúng ta nào mong muốn sắm, inbox trực tiếp a Tuyền, cựu sinh viên Bách Khoa K53, fb: https://www.facebook.com/tuyen.viettingame.com

Loạt bài hướng dẫn của Shop chúng tôi dựa một phần trên nguồn tài liệu của: Tutorialspoint.com

Follow facebook cá thể Nguyễn Thanh Tuyền https://www.facebook.com/tuyen.viettingame.com để kế tiếp theo dõi những loạt bài tiên tiến nhất về Java,C,C++,Javascript,HTML,Python,Database,Mobile…. tiên tiến nhất của Shop chúng tôi.

Về Viettingame.com

Viettingame.com - Chuyên trang web tổng hợp những thông tin hữu ích trên internet như thông tin về game, tin tổng hợp
Xem tất cả các bài viết của Viettingame.com →

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 *