ホームページ  >  記事  >  Java  >  Java でインターフェースを使用する場合と抽象クラスを使用する場合

Java でインターフェースを使用する場合と抽象クラスを使用する場合

王林
王林オリジナル
2024-05-01 12:15:02689ブラウズ

インターフェイスを使用する場合: さまざまなタイプのオブジェクトによって実装される共有関数を定義します。コールバック インターフェイス (イベント リスナーなど) を定義します。多重継承を実装します。抽象クラスを使用する場合: 継承を通じて実装される共通関数を定義します。単一継承とポリモーフィズムを実装します。保護されたメソッドまたはフィールドを定義します。

Java 中何时使用接口何时使用抽象类

Java でインターフェイスと抽象クラスを使用する場合

Java では、インターフェイスと抽象クラスは両方ともオブジェクトの定義に使用されます。行動の概念。それらは似ていますが、使用目的には明らかな違いがあります。

インターフェイス

インターフェイスは、メソッド シグネチャ (つまり、実装のないメソッド宣言) を含むコントラクトです。これは、クラスが実装する必要があるパブリック メソッドのセットを定義します。

インターフェイスを使用するのはどのような場合ですか?

  • 異なるタイプのオブジェクトで共有できる共通の機能を定義します。
  • イベント リスナーなどのコールバック インターフェイスを定義する必要がある場合。
  • 多重継承を実装する必要がある場合 (Java ではサポートされていません)。
public interface Animal {
    void eat();
    void sleep();
}

抽象クラス

抽象クラスは、メソッド実装と抽象メソッドの組み合わせを含む部分的に抽象的なクラスです。抽象クラスはインスタンス化できませんが、サブクラスによって継承できます。

いつ抽象クラスを使用するか?

  • 継承によってのみ実現できる共通関数を定義します。
  • 単一継承とポリモーフィズムを実装する必要がある場合。
  • 保護されたメソッドまたはフィールドを定義する必要がある場合。
public abstract class Mammal {
    public void giveBirth() { ... }
    public abstract void makeSound();
}

実用的なケース

インターフェイス

面積と周長を計算するために定義された Shape インターフェイスを作成するパブリック メソッド:

public interface Shape {
    double getArea();
    double getPerimeter();
}

このインターフェイスを使用して Rectangle クラスと Circle クラスを作成します:

public class Rectangle implements Shape {
    // ...
}

public class Circle implements Shape {
    // ...
}

Abstract クラス

面積を計算するための Protected メソッド用に定義された Shape 抽象クラスを作成しますおよび周長:

public abstract class Shape {
    protected double area;
    protected double perimeter;

    public abstract double getArea();
    public abstract double getPerimeter();
}

この抽象クラスを使用して Rectangle クラスと Circle クラスを作成し、getArea() メソッドと getPerimeter() メソッドをオーバーライドします:

public class Rectangle extends Shape {
    // ...
}

public class Circle extends Shape {
    // ...
}

以上がJava でインターフェースを使用する場合と抽象クラスを使用する場合の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。