Chủ Nhật, 14 tháng 4, 2024

Inheritance

 

Tính kế thừa trong Java là khả năng một lớp con có thể sử dụng các thuộc tính và phương thức của lớp cha mà không cần phải định nghĩa lại chúng. Tính kế thừa cho phép tái sử dụng mã và xây dựng các mối quan hệ phân cấp giữa các lớp.

Dưới đây là một số điểm quan trọng về tính kế thừa trong Java:

Tính chấtMô tả
Lớp ChaLớp cha (hoặc lớp cơ sở) là lớp mà các lớp con kế thừa các thuộc tính và phương thức từ đó.
Lớp ConLớp con (hoặc lớp dẫn xuất) là lớp kế thừa các thuộc tính và phương thức từ lớp cha và có thể định nghĩa lại chúng.
Kế thừaLớp con có thể kế thừa tất cả các thuộc tính và phương thức không phải private của lớp cha.
Ghi đèLớp con có thể định nghĩa lại (ghi đè) các phương thức của lớp cha để cung cấp thực thi cụ thể cho lớp con.
Đa hìnhTính kế thừa cung cấp tính đa hình, cho phép một đối tượng có thể thể hiện như một loại lớp và thực hiện hành vi khác nhau dựa trên loại của nó.
Truy cậpCác thuộc tính và phương thức private trong lớp cha không thể được kế thừa và truy cập từ bên ngoài lớp cha.

Dưới đây là một ví dụ minh họa về tính kế thừa trong Java:

// Lớp cha class Animal { String name; public Animal(String name) { this.name = name; } public void eat() { System.out.println(name + " is eating"); } } // Lớp con kế thừa từ lớp cha class Dog extends Animal { public Dog(String name) { super(name); // Gọi constructor của lớp cha } public void bark() { System.out.println(name + " is barking"); } } public class Main { public static void main(String[] args) { // Tạo một đối tượng của lớp con Dog myDog = new Dog("Buddy"); // Gọi phương thức của lớp cha myDog.eat(); // Gọi phương thức của lớp con myDog.bark(); } }

Kết quả sẽ là:

Buddy is eating Buddy is barking

Toán tử instanceof

Toán tử instanceof trong Java được sử dụng để kiểm tra xem một đối tượng có phải là một thể hiện của một lớp cụ thể hay không. Cú pháp của toán tử này như sau:

đối_tượng instanceof lớp

Trong đó:

  • đối_tượng là một biểu thức biểu diễn một đối tượng.
  • lớp là một lớp hoặc một giao diện.

Kết quả của toán tử instanceoftrue nếu đối tượng được biểu thị bởi biểu thức đối_tượng là một thể hiện của lớp hoặc giao diện được chỉ định trong biểu thức lớp, ngược lại là false.

Dưới đây là một ví dụ minh họa về cách sử dụng toán tử instanceof:

class Animal {} class Dog extends Animal {} public class Main { public static void main(String[] args) { Animal animal = new Dog(); // Kiểm tra xem animal có phải là một thể hiện của lớp Animal hay không if (animal instanceof Animal) { System.out.println("animal là một thể hiện của lớp Animal"); } // Kiểm tra xem animal có phải là một thể hiện của lớp Dog hay không if (animal instanceof Dog) { System.out.println("animal là một thể hiện của lớp Dog"); } } }

Kết quả sẽ là:

animal là một thể hiện của lớp Animal animal là một thể hiện của lớp Dog

Trong ví dụ này, animal là một thể hiện của lớp Dog, nhưng cũng là một thể hiện của lớp Animal, vì vậy cả hai lời gọi instanceof đều trả về true.

Không có nhận xét nào:

Đăng nhận xét