JavaRush /Java Blog /Random-JA /なぜインターフェースが必要なのでしょうか?
Павел
レベル 11

なぜインターフェースが必要なのでしょうか?

Random-JA グループに公開済み
なぜインターフェースが必要なのでしょうか? なぜインターフェースの継承が必要なのでしょうか? なぜポリモーフィズムが必要なのでしょうか? インターフェイスの作成方法を読んで理解したものの、その理由は理解できなかった人向け。

免責事項: この記事とその後の記事では、クラスとメソッドの名前はロシア語で付けられます。

オブジェクト指向プログラミング (OOP) の原則であるポリモーフィズム、継承、カプセル化については、現実世界の類似点を使用すると役立ちます。OOP の大きな利点は、プログラム内で実際の宇宙の一部をシミュレートできることです。イワノフ家、お父さんお母さん、そして男の子のペティアをモデルにしてみましょう。ペティアはお父さん から、お茶を飲むときにすする習慣を、お母さんから、読書中に口をすぼめる習慣を受け継ぎました。この状況をプログラムに実装しようとすると、最終的に 3 つのクラスができます。
class Папа
class Мама
class Петя
お父さんお母さんには、ピートに伝えなければならない習慣が あります。習慣はある種の行動です - したがって、それをメソッドとしてソフトウェアの世界に実装するのが最善です: Dad First :
class Папа {
public void прихлюпывать() {
System.out.println("Хлюп");
    }
}
さて、お母さん
class Мама {
public void поджимать() {
System.out.println("Поджать губки");
   }
}
継承について話している場合、次のようにコードを記述するのが論理的です。
class Петя extends Папа, Мама {
@Override
public void прихлюпывать() {
     System.out.println("Хлюп");
   }

@Override
public void поджимать() {
System.out.println("Поджать губки");
    }
}
つまり、お父さんお母さんから同時にペティアを継承することです。このように書くと、Java では複数のクラスの継承を実装できないため、コンパイラがエラーを出します。ちなみに、C++ では可能ですが、Java では不可能です。多重継承では大きな問題が発生する可能性があるためです。詳しくはインターネットに書かれています。 この「不可能」を回避するために、Java にはインターフェースがあります。そして習慣については独自のインターフェースを考え出します。2 つでも: 次のようになります。 なぜインターフェースが必要なのでしょうか?  - 1
public interface ПривычкиПапы {
    public void прихлюпывать();
}
public interface ПривычкиМамы {
    public void поджимать();
}
インターフェイスでは習慣についてのみ説明しましたが、具体的な実装はクラスで記述するため、習慣が具体的に何を行うかについては説明しませんでした。まず、お父さんお母さんに法的な習慣を 教えてみましょう。
class Папа implements ПривычкиПапы {

   @Override
    public void прихлюпывать() {
     System.out.println("Хлюп");
   }
}

class Мама implements ПривычкиМамы{

@Override
public void поджимать() {
System.out.println("Поджать губки");
    }
}
そして今、お父さんお母さんから同時に ピートに習慣 を移すことは完全に合法です
class Петя implements ПривычкиПапы, ПривычкиМамы {

@Override
public void прихлюпывать() {
     System.out.println("Хлюп");
   }

@Override
public void поджимать() {
System.out.println("Поджать губки");
    }
}
つまり、Java では複数の実装 (実装と呼ばれることが多い) がかなり可能です。 なぜインターフェースが必要なのでしょうか?  - 2インターフェースの意味が明確になったはずです。Java では、インターフェースを使用して多重継承を実装できます。たとえば、状況をさらに発展させた場合、結局のところ、お父さんお母さんはおそらくペティアに伝えなかった習慣を持っており、ペティアにも彼自身の個人的な習慣がある可能性があります。次のエピソードでは、この重要なサンタ バーバラを Java プレーンに転送する方法を学びます。これはインターフェイスを理解するための唯一の例ではありません。次の記事をまだ読んでいない場合は、必ずお読みください: Java のインターフェイス(開いていない場合は、プロファイルを終了するか、シークレット モードで読むことができます) なぜインターフェイスが必要なのかJava - ここの記事のすべての例を実装し、インターフェイスとクラスの両方でメソッドを変更します: メソッドの名前、シグネチャ (メソッドが入力として受け取るもの)、メソッドの出力タイプ。自分自身で次のことを理解してください。 - クラスと抽象クラスでインターフェイスを実装する場合の違い。- デフォルトのメソッド。
コメント
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION