Maison >développement back-end >C++ >Conseils sur la réécriture de fonctions : maîtrisez le secret de l'écriture de code spécifique à une sous-classe
La substitution de fonctions permet aux sous-classes de fournir des implémentations personnalisées pour les fonctions de la classe parent sans affecter le comportement de la classe parent. La sous-classe déclare simplement une nouvelle fonction avec le même nom et la même liste de paramètres. Par exemple, la fonction Area() de la classe Shape est remplacée par la classe Rectangle pour fournir des calculs de surface personnalisés pour les rectangles tout en exploitant les méthodes abstraites de la classe Shape.
Conseils pour la réécriture de fonctions : profitez des avantages exclusifs du code de sous-classe
La réécriture de fonctions permet aux sous-classes de fournir leur propre implémentation de la fonction du même nom sans affecter l'implémentation de la classe parent. Cela permet à la sous-classe de personnaliser son comportement tout en profitant des fonctionnalités de la classe parent.
Pour remplacer une fonction, une sous-classe déclare simplement une nouvelle fonction avec le même nom et la même liste de paramètres. L'implémentation de la sous-classe remplacera l'implémentation de la classe parent.
Exemple de code :
class Shape: def area(self): raise NotImplementedError class Rectangle(Shape): def __init__(self, length, width): self.length = length self.width = width def area(self): return self.length * self.width # 创建矩形对象 rectangle = Rectangle(5, 10) # 调用重写的 area() 函数 print(rectangle.area()) # 输出:50
Cas pratique :
Considérons une classe Shape qui fournit une fonction abstraite area()
pour calculer l'aire d'une forme. Nous souhaitons maintenant créer la classe Rectangle, qui hérite de la classe Shape et fournit des calculs de surface spécifiques pour les formes Rectangle. area()
函数来计算形状的面积。现在,我们想创建 Rectangle 类,它继承自 Shape 类并提供 Rectangle 形状的具体面积计算。
通过重写 area()
area()
, nous pouvons ajouter une implémentation personnalisée pour les rectangles à la classe Rectangle sans modifier l'implémentation de la classe parent Shape. Cela nous donne la flexibilité de fournir un code spécifique à la forme pour différents types de formes. Astuce :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!