ホームページ >Java >&#&チュートリアル >オブジェクト指向プログラミングにおける抽象化
抽象化は、オブジェクト指向プログラミング (OOP) の基本原理の 1 つで、複雑な実装の詳細を隠し、重要な機能のみを表示するシステムの機能を指します。抽象化の目標は、ユーザーがオブジェクトがどのように機能するかではなく、その機能に集中できるようにすることで、複雑なオブジェクトとの対話を簡素化することです。
実際には、抽象化は 抽象クラス と インターフェイス を使用して実現されます。これらは、サブクラスまたは具象クラスによって実装する必要がある動作を定義します。
抽象化にはいくつかの利点があります:
抽象クラスを使用すると、実装を持たないメソッド (抽象メソッド) と、サブクラスで使用できる具象メソッドを定義できます。 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
インターフェイスは、抽象化を実装するもう 1 つの方法です。これらは、それを実装するクラスが提供する必要があるメソッドを定義しますが、デフォルトの実装は提供しません。
// 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
抽象化は、よりシンプルで再利用可能で保守が容易なシステムの作成に役立つオブジェクト指向プログラミングの基本概念です。開発者は抽象クラスとインターフェイスを使用することで実装の複雑さを隠すことができ、ユーザーやシステムの他の部分が直感的な方法でオブジェクトを操作できるようになります。効果的なオブジェクト指向ソフトウェア開発には、抽象化を理解して適用することが不可欠です。
以上がオブジェクト指向プログラミングにおける抽象化の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。