Hướng dẫn what is the use of abstract class in php? - việc sử dụng lớp trừu tượng trong php là gì?

Chúng tôi sử dụng các lớp trừu tượng khi chúng tôi muốn cam kết lập trình viên [chính mình hoặc người khác] để viết một phương thức lớp nhất định, nhưng chúng tôi chỉ chắc chắn về tên của phương thức, và không phải là chi tiết về cách viết. Để lấy một ví dụ, các vòng tròn, hình chữ nhật, hình bát giác, v.v. đều có thể trông khác nhau, nhưng dù sao thì đều là hình dạng 2D, và do đó tất cả đều sở hữu các đặc điểm của diện tích và chu vi. Vì vậy, nó có ý nghĩa hoàn hảo để nhóm mã mà họ có điểm chung thành một lớp cha mẹ. Trong lớp cha mẹ này, chúng tôi sẽ có hai thuộc tính của diện tích và chu vi và chúng tôi thậm chí có thể xem xét việc thêm một phương pháp tính toán khu vực [có thể có vấn đề vì các hình dạng khác nhau đòi hỏi các tính toán khác nhau]. Trong các loại trường hợp này, khi chúng ta cần đưa các lớp con vào một số phương pháp nhất định mà chúng được thừa hưởng từ lớp cha nhưng chúng ta không thể cam kết về mã nên được sử dụng trong các phương pháp, chúng ta sử dụng các lớp trừu tượng.abstract classes when we want to commit the programmer [either oneself or someone else] to write a certain class method, but we are only sure about the name of the method, and not the details of how it should be written. To take an example, circles, rectangles, octagons, etc. may all look different, but are all 2D shapes nonetheless, and thus all possess the traits of area and circumference. So, it makes perfect sense to group the code that they have in common into one parent class. In this parent class, we would have the two properties of area and circumference, and we might even consider adding a method that calculates the area [which might be problematic since different shapes require different calculations]. In these kinds of cases, when we need to commit the child classes to certain methods that they inherit from the parent class but we cannot commit about the code that should be used in the methods, we use abstract classes.

Chúng tôi sử dụng các lớp và phương thức trừu tượng khi chúng tôi cần cam kết các lớp con vào một số phương pháp nhất định mà chúng kế thừa từ lớp cha nhưng chúng tôi không thể cam kết về mã cần được viết bên trong các phương thức.

Một lớp trừu tượng là một lớp có ít nhất một phương pháp trừu tượng. Các phương thức trừu tượng chỉ có thể có tên và đối số, và không có mã nào khác. Vì vậy, chúng ta không thể tạo các đối tượng ra khỏi các lớp trừu tượng. Thay vào đó, chúng ta cần tạo các lớp con thêm mã vào các cơ thể của các phương thức và sử dụng các lớp con này để tạo các đối tượng.abstract class is a class that has at least one abstract method. Abstract methods can only have names and arguments, and no other code. Thus, we cannot create objects out of abstract classes. Instead, we need to create child classes that add the code into the bodies of the methods, and use these child classes to create objects.

Bạn sẽ học & nbsp; & nbsp;   

Làm thế nào để khai báo các lớp và phương pháp là trừu tượng?

Để khai báo một lớp là trừu tượng, chúng ta cần tiền tố tên của lớp với từ khóa trừu tượng.abstract keyword.

Xem ví dụ sau:

abstract class Car { }

Chúng tôi đặt các phương thức trừu tượng cũng được khai báo với từ khóa trừu tượng trong lớp trừu tượng. Các phương pháp trừu tượng bên trong một lớp trừu tượng không có cơ thể, chỉ có tên và tham số bên trong ngoặc đơn.abstract keyword within the abstract class. Abstract methods inside an abstract class don't have a body, only a name and parameters inside parentheses.

Trong ví dụ được đưa ra dưới đây, chúng tôi tạo một phương thức trừu tượng công khai, calcnummilesOnfullTank [], đó là bộ xương cho các phương thức mà chúng tôi sẽ tạo trong các lớp con. Sau khi được tạo, các phương pháp này sẽ trả lại số dặm một chiếc xe có thể được điều khiển trên một bình xăng.calcNumMilesOnFullTank[], that is the skeleton for methods that we will create in the child classes. Once created, these methods will return the number of miles a car can be driven on a tank of gas.

// Abstract classes are declared with the abstract keyword, and contain abstract methods.
abstract class Car {
  abstract public function calcNumMilesOnFullTank[];
}

Điều quan trọng là phải biết rằng một khi chúng ta có một phương pháp trừu tượng trong một lớp, lớp cũng phải trừu tượng.

Chúng ta có thể có các phương thức không trừu tượng trong một lớp trừu tượng?

Một lớp trừu tượng có thể có các phương pháp không trừu tượng. Trên thực tế, nó thậm chí có thể có các thuộc tính và các thuộc tính không thể trừu tượng.

Hãy thêm vào ví dụ của chúng tôi, thuộc tính được bảo vệ, $ TankVolume và phương thức công khai với tên của SetkKvolume [].$tankVolume, and public method with the name of setTankVolume[].

abstract class Car {
  // Abstract classes can have properties
  protected $tankVolume;
 
  // Abstract classes can have non abstract methods
  public function setTankVolume[$volume]
  {
    $this -> tankVolume = $volume;
  }
 
  // Abstract method
  abstract public function calcNumMilesOnFullTank[];
}

Làm thế nào để tạo các lớp học từ một lớp trừu tượng?

Vì chúng ta không thể tạo các đối tượng từ các lớp trừu tượng, chúng ta cần tạo các lớp con kế thừa mã lớp trừu tượng. Các lớp con của các lớp trừu tượng được hình thành với sự trợ giúp của từ khóa mở rộng, giống như bất kỳ lớp con nào khác. Chúng khác nhau ở chỗ chúng phải thêm các cơ thể vào các phương pháp trừu tượng.extends keyword, like any other child class. They are different in that they have to add the bodies to the abstract methods.

Các lớp con được kế thừa từ các lớp trừu tượng phải thêm các cơ thể vào các phương thức trừu tượng.

Chúng ta hãy tạo một lớp trẻ em với tên của Honda và xác định trong đó phương thức trừu tượng mà nó được thừa hưởng từ cha mẹ, calcnummilesonfulltank [].Honda, and define in it the abstract method that it inherited from the parent, calcNumMilesOnFullTank[].

class Honda extends Car {
  // Since we inherited abstract method, we need to define it in the child class, 
  // by adding code to the method's body.
  public function calcNumMilesOnFullTank[]
  {
    $miles = $this -> tankVolume*30;
    return $miles;
  }
}

Chúng ta có thể tạo một lớp trẻ khác từ lớp trừu tượng xe và gọi nó là Toyota, và ở đây một lần nữa xác định phương thức trừu tượng calcnummilesonfulltank [] với một sự thay đổi nhỏ trong tính toán. Chúng tôi cũng sẽ thêm vào lớp trẻ Phương thức riêng của mình với tên của getColor [] trả về chuỗi "màu be".Car abstract class and call it Toyota, and here again define the abstract method calcNumMilesOnFullTank[] with a slight change in the calculation. We will also add to the child class its own method with the name of getColor[] that returns the string "beige".

class Toyota extends Car {
  // Since we inherited abstract method, we need to define it in the child class, 
  // by adding code to the method's body.
  public function calcNumMilesOnFullTank[]
  {
    return $miles = $this -> tankVolume*33;
  }
 
  public function getColor[]
  {
    return "beige";
  }
}

Hãy tạo một đối tượng mới, $ Toyota1, với khối lượng 10 gallon và để nó trả lại số dặm trên xe tăng đầy đủ và màu của xe.$toyota1, with volume of 10 Gallons, and let it return the number of miles on full tank and the car's color.

$toyota1 = new Toyota[];
$toyota1 -> setTankVolume[10];
echo $toyota1 -> calcNumMilesOnFullTank[];//330
echo $toyota1 -> getColor[];//beige

Sự kết luận

Trong hướng dẫn này, chúng tôi đã có cuộc gặp gỡ đầu tiên với khái niệm trừu tượng, cho phép chúng tôi cam kết các lớp con với tên phương thức và không phải là các phương pháp. Nhấn vào đây để thực hành chủ đề. Trong hướng dẫn tiếp theo, chúng tôi sẽ xem xét lại khái niệm trừu tượng, nhưng lần này thông qua việc sử dụng giao diện.interface.

Tại sao bạn sẽ sử dụng một lớp trừu tượng?

Một lớp trừu tượng được sử dụng nếu bạn muốn cung cấp một chức năng phổ biến, được triển khai trong số tất cả các triển khai của thành phần.Các lớp trừu tượng sẽ cho phép bạn thực hiện một phần lớp của mình, trong khi các giao diện sẽ không có việc triển khai cho bất kỳ thành viên nào.if you want to provide a common, implemented functionality among all the implementations of the component. Abstract classes will allow you to partially implement your class, whereas interfaces would have no implementation for any members whatsoever.

Một lớp trừu tượng là gì và nó được sử dụng để làm gì?

Lớp trừu tượng: là một lớp bị hạn chế không thể được sử dụng để tạo các đối tượng [để truy cập nó, nó phải được kế thừa từ một lớp khác].Phương pháp trừu tượng: Chỉ có thể được sử dụng trong một lớp trừu tượng và nó không có cơ thể.Cơ thể được cung cấp bởi lớp con [được thừa hưởng từ].a restricted class that cannot be used to create objects [to access it, it must be inherited from another class]. Abstract method: can only be used in an abstract class, and it does not have a body. The body is provided by the subclass [inherited from].

Php lớp trừu tượng là gì?

Các lớp trừu tượng là các lớp trong đó ít nhất một phương pháp là trừu tượng.Không giống như các lớp trừu tượng C ++ trong PHP được khai báo với sự trợ giúp của từ khóa trừu tượng.Việc sử dụng các lớp trừu tượng là tất cả các lớp cơ sở thực hiện lớp này nên cung cấp thực hiện các phương thức trừu tượng được khai báo trong lớp cha.the classes in which at least one method is abstract. Unlike C++ abstract classes in PHP are declared with the help of abstract keyword. Use of abstract classes are that all base classes implementing this class should give implementation of abstract methods declared in parent class.

Bài Viết Liên Quan

Chủ Đề