인터페이스 및 추상 클래스의 역할: 인터페이스: 필요한 동작을 정의하고 구현 클래스가 특정 사양을 준수하도록 합니다. 추상 클래스: 공통 동작을 정의하고, 하위 클래스가 이를 상속하도록 강제하고, 부분 구현을 제공하고, 하위 클래스가 특정 동작을 사용자 정의할 수 있도록 허용합니다. 디자인 원칙: 인터페이스: 작고 집중적으로 유지하여 필요한 동작을 정의합니다. 추상 클래스: 추상 메소드만 선언하고 일반적인 동작을 달성하기 위한 구체적인 메소드를 제공합니다. 예: 모양 클래스 계층 구조에서 Shape 인터페이스는 면적을 얻는 동작을 정의하고 AbstractShape 추상 클래스는 너비 및 높이 필드를 제공하며 Rectangle 및 Circle 클래스는 추상 클래스를 상속하고 특정 모양에 대한 면적 계산 방법을 제공합니다. .
Java
Interfaces
공용 인터페이스 InterfaceName { ... }
public interface InterfaceName { ... }
抽象类
public abstract class AbstractClassName { ... }
作用
接口
抽象类
设计原则
接口
抽象类
实战案例
考虑一个简单的形状类层次结构:
**`
public abstract class AbstractClassName { ... }
Function
Interface
🎜🎜🎜은 분리를 달성하여 클래스가 자신의 책임에 집중할 수 있도록 합니다. 🎜🎜구성 요소를 쉽게 교체하고 확장할 수 있도록 모듈성과 확장성을 촉진합니다. 🎜🎜구현 클래스가 특정 사양을 준수하도록 강제하는 동작 계약을 정의합니다. 🎜🎜🎜추상 클래스🎜🎜🎜🎜공통 동작을 정의하고 하위 클래스가 이를 상속하도록 강제합니다. 🎜🎜하위 클래스에서 중복 코드를 줄이기 위해 부분 구현을 제공합니다. 🎜🎜하위 클래스가 특정 동작을 맞춤 설정할 수 있도록 후크 메서드를 제공하세요. 🎜🎜🎜디자인 원칙🎜🎜🎜🎜인터페이스🎜🎜🎜🎜필요한 동작만 정의하세요. 🎜🎜메서드 이름은 명확하고 간결해야 하며 예상되는 동작을 나타내야 합니다. 🎜🎜인터페이스는 작고 집중적으로 유지되어야 합니다. 🎜🎜🎜추상 클래스🎜🎜🎜🎜추상 메소드만 선언하고 공개 동작을 정의합니다. 🎜🎜일반적인 동작을 구현하기 위한 구체적인 방법을 제공하세요. 🎜🎜공유 구현이 필요한 경우 인터페이스 대신 추상 클래스 사용을 고려하세요. 🎜🎜🎜실용 사례🎜🎜🎜간단한 모양 클래스 계층 구조를 고려하세요. 🎜🎜**`
java🎜interface Shape {🎜double getArea();🎜}🎜🎜추상 클래스 AbstractShape는 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은 AbstractShape를 확장합니다. {🎜
public Rectangle(double width, double height) { super(width, height); } @Override public double getArea() { return width * height; }🎜}🎜🎜class Circle은 AbstractShape를 확장합니다. {🎜
public Circle(double radius) { super(radius, radius); } @Override public double getArea() { return Math.PI * width * width; }🎜}🎜🎜public 클래스 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` 类来扩展形状类层次结构,并提供特定形状的具体方法来计算面积。
위 내용은 Java에서 인터페이스와 추상 클래스의 역할과 디자인 원칙의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!