추상화는 복잡한 구현 세부 정보를 숨기고 필수 기능만 표시하는 시스템 기능을 나타내는 객체 지향 프로그래밍(OOP)의 기본 원칙 중 하나입니다. 추상화의 목표는 사용자가 객체가 수행하는 방식보다는 객체가 수행하는 작업에 집중할 수 있도록 하여 복잡한 객체와의 상호 작용을 단순화하는 것입니다.
실제로 추상화는 추상 클래스 및 인터페이스를 사용하여 수행됩니다. 이는 하위 클래스 또는 구체적인 클래스에서 구현해야 하는 동작을 정의합니다.
추상화는 다음과 같은 여러 이점을 제공합니다.
추상 클래스를 사용하면 구현이 없는 메서드(추상 메서드)와 하위 클래스에서 사용할 수 있는 구체적인 메서드를 정의할 수 있습니다. Shape라는 추상 클래스와 Circle 및 Rectangle의 하위 클래스를 사용하여 예제를 만들어 보겠습니다.
// Classe abstrata public abstract class Forma { // Método abstrato public abstract double calcularArea(); // Método concreto public void imprimirArea() { System.out.println("A área é: " calcularArea()); } }
// Subclasse Circulo public class Circulo extends Forma { private double raio; public Circulo(double raio) { this.raio = raio; } // Implementando o método calcularArea @Override public double calcularArea() { return Math.PI * raio * raio; } }
// Subclasse Retangulo public class Retangulo extends Forma { private double largura; private double altura; public Retangulo(double largura, double altura) { this.largura = largura; this.altura = altura; } // Implementando o método calcularArea @Override public double calcularArea() { return largura * altura; } }
public class Main { public static void main(String[] args) { Forma circulo = new Circulo(5); Forma retangulo = new Retangulo(4, 6); // Imprimindo áreas circulo.imprimirArea(); // Saída: A área é: 78.53981633974483 retangulo.imprimirArea(); // Saída: A área é: 24.0 } }
A área é: 78.53981633974483 A área é: 24.0
인터페이스는 추상화를 구현하는 또 다른 방법입니다. 이를 구현하는 클래스가 제공해야 하는 메서드를 정의하지만 기본 구현을 제공하지는 않습니다.
// Interface public interface Forma { double calcularArea(); void imprimirArea(); }
// Classe Circulo implementando a interface public class Circulo implements Forma { private double raio; public Circulo(double raio) { this.raio = raio; } @Override public double calcularArea() { return Math.PI * raio * raio; } @Override public void imprimirArea() { System.out.println("A área do círculo é: " calcularArea()); } }
// Classe Retangulo implementando a interface public class Retangulo implements Forma { private double largura; private double altura; public Retangulo(double largura, double altura) { this.largura = largura; this.altura = altura; } @Override public double calcularArea() { return largura * altura; } @Override public void imprimirArea() { System.out.println("A área do retângulo é: " calcularArea()); } }
public class Main { public static void main(String[] args) { Forma circulo = new Circulo(5); Forma retangulo = new Retangulo(4, 6); // Imprimindo áreas circulo.imprimirArea(); // Saída: A área do círculo é: 78.53981633974483 retangulo.imprimirArea(); // Saída: A área do retângulo é: 24.0 } }
A área do círculo é: 78.53981633974483 A área do retângulo é: 24.0
추상화는 객체 지향 프로그래밍의 기본 개념으로, 시스템을 더 간단하고 재사용 가능하며 유지 관리하기 쉽게 만드는 데 도움이 됩니다. 개발자는 추상 클래스와 인터페이스를 사용하여 구현 복잡성을 숨겨 사용자와 시스템의 다른 부분이 직관적인 방식으로 개체와 상호 작용할 수 있습니다. 추상화를 이해하고 적용하는 것은 효과적인 객체 지향 소프트웨어 개발에 매우 중요합니다.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3