Posted in

Ngày 1: Abstract Class và Interface trong Java.

Ngày 1: Abstract Class và Interface trong Java.

Chủ điểm nay đề cập đến Abstract Class (lớp trừu tượng) và Interface (giao diện) trong Java – hai phần tử quan trọng trong Java và OOP.

Abstract Class là một lớp không thể sử dụng để tạo đối tượng, nhưng nó có thể dùng để khai báo các phương thức trừu tượng hoặc không trừu tượng (được triển khai).

Ví dụ:
Abstract class Animal {
abstract void makeSound();
}
Class Dog extends Animal {
public void makeSound() {
System.out.println(“Bark bark!”);
}
}
Đối tượng mới có thể được khởi tạo từ lớp Dog như sau: Dog myDog = new Dog(); – và phương thức myDog.makeSound(); sẽ in ra “Bark bark!”

Interface là một mẫu thiết kế khác trong Java. Nó không phải là một lớp nhưng giống như một class, và chứa khai báo của các phương thức (đều trừu tượng).

Ví dụ:
Interface Animal {
void makeSound();
}
Class Dog implements Animal {
public void makeSound() {
System.out.println(“Bark bark!”);
}
}

Đối tượng mới cũng có thể khởi tạo từ lớp Dog và phương thức myDog.makeSound(); sẽ cũng in ra “Bark bark!”

Abstract Class khác với Interface ở chỗ, một Abstract Class có thể có các phương thức được triển khai trong khi Interface không thể, Abstract Class chỉ cho phép đơn kế thừa trong khi Interface cho phép đa kế thừa.

Câu hỏi ôn tập:
1. Định nghĩa Abstract Class?
– Abstract Class là một lớp không thể sử dụng để tạo đối tượng, nhưng nó có thể dùng để khai báo các phương thức trừu tượng hoặc không trừu tượng (được triển khai).

2. Định nghĩa Interface?
– Interface không phải là một lớp nhưng giống như một class, và chứa khai báo của các phương thức (đều trừu tượng).

3. Sự khác nhau giữa Abstract Class và Interface?
– Abstract Class có thể có các phương thức được triển khai trong khi Interface không thể, Abstract Class chỉ cho phép đơn kế thừa trong khi Interface cho phép đa kế thừa.

4. Abstract Class và Interface có thể sử dụng để tạo đối tượng không?
– Không, chúng chỉ sử dụng cho mục đích kế thừa và triển khai.

5. Trên Java 8, có phải Interface có thêm khả năng chứa các phương thức được triển khai không?
– Đúng, từ Java 8, Interface có thể chứa các “default methods” có triển khai sẵn.

Leave a Reply

Your email address will not be published. Required fields are marked *