Le rôle des interfaces et des classes abstraites : Interfaces : Définir les comportements nécessaires et forcer les classes d'implémentation à se conformer à des spécifications spécifiques. Classe abstraite : définit un comportement commun, force les sous-classes à en hériter, fournit une implémentation partielle et permet aux sous-classes de personnaliser des comportements spécifiques. Principes de conception : Interface : restez petite et ciblée, et définissez le comportement nécessaire. Classe abstraite : déclare uniquement des méthodes abstraites et fournit des méthodes concrètes pour obtenir un comportement commun. Exemple : dans la hiérarchie des classes de forme, l'interface Shape définit le comportement d'obtention de la zone, la classe abstraite AbstractShape fournit les champs de largeur et de hauteur, et les classes Rectangle et Circle héritent de la classe abstraite et fournissent la méthode de calcul de surface pour une forme spécifique. .
Le rôle et les principes de conception des interfaces et des classes abstraites en Java
Interfaces
public interface InterfaceName { ... }
public interface InterfaceName { ... }
抽象类
public abstract class AbstractClassName { ... }
作用
接口
抽象类
设计原则
接口
抽象类
实战案例
考虑一个简单的形状类层次结构:
**`
public abstract class AbstractClassName { ... }
Function
Interface
🎜🎜🎜 réalise le découplage, permettant aux classes de se concentrer sur leurs propres responsabilités. 🎜🎜Favorise la modularité et l'extensibilité afin que les composants puissent être facilement interchangés et étendus. 🎜🎜Définissez des contrats de comportement pour forcer les classes d'implémentation à se conformer à des spécifications spécifiques. 🎜🎜🎜Classes abstraites🎜🎜🎜🎜définissent un comportement commun et forcent les sous-classes à en hériter. 🎜🎜Fournir une implémentation partielle pour réduire le code en double dans les sous-classes. 🎜🎜Fournissez des méthodes de hook pour permettre aux sous-classes de personnaliser des comportements spécifiques. 🎜🎜🎜Principes de conception🎜🎜🎜🎜Interfaces🎜🎜🎜🎜Définissez uniquement les comportements nécessaires. 🎜🎜Les noms des méthodes doivent être clairs et concis, indiquant le comportement attendu. 🎜🎜Les interfaces doivent rester petites et ciblées. 🎜🎜🎜Classe abstraite🎜🎜🎜🎜Déclare uniquement les méthodes abstraites et définit le comportement public. 🎜🎜Proposer des méthodes concrètes pour mettre en œuvre des comportements communs. 🎜🎜Envisagez d'utiliser des classes abstraites au lieu d'interfaces lorsqu'une implémentation partagée est requise. 🎜🎜🎜Cas pratique🎜🎜🎜Considérons une hiérarchie de classes de forme simple : 🎜🎜**`
java🎜interface Shape {🎜double getArea();🎜}🎜🎜classe abstraite AbstractShape implémente Shape { 🎜
protected double width; protected double height; public AbstractShape(double width, double height) { this.width = width; this.height = height; } public double getWidth() { return width; } public double getHeight() { return height; }🎜}🎜🎜class Rectangle étend AbstractShape {🎜
public Rectangle(double width, double height) { super(width, height); } @Override public double getArea() { return width * height; }🎜}🎜🎜class Circle étend AbstractShape {🎜
public Circle(double radius) { super(radius, radius); } @Override public double getArea() { return Math.PI * width * width; }🎜}🎜🎜public class Main {🎜
public static void main(String[] args) { Shape rectangle = new Rectangle(4, 5); Shape circle = new Circle(3); System.out.println("Rectangle area: " + rectangle.getArea()); System.out.println("Circle area: " + circle.getArea()); }🎜}🎜
在这个例子中: * `Shape` 接口定义了一个通用行为:获取形状面积。 * `AbstractShape` 抽象类提供了通用行为的通用实现,例如宽度和高度字段。 * `Rectangle` 和 `Circle` 类通过继承 `AbstractShape` 类来扩展形状类层次结构,并提供特定形状的具体方法来计算面积。
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!