私はインターネットから次の定義を見つけました。どちらも私のものと似ています:抽象化とインターフェイスの違いは何ですか?
抽象化:抽象化はOOPSのもう一つの優れた特徴です。抽象化とは、オブジェクトのクライアントに必要な詳細のみを表示することを意味します。あなたのPCのモニターの内部の詳細を知っていますか?モニターをオンに切り替えるとどうなりますか?これはモニターの内部で何が起きているのですか?いいえ、あなたにとって重要なことは、天気モニターがオンかどうかです。あなたの車のギアを交換するときは、あなたの車のエンジンの内部の詳細について本当に心配ですか?いいえ、しかし、あなたにとって重要なことは、ギアがそれを変えなければならないということです!これは抽象です。ユーザーにとって重要な詳細のみを表示します。 Employeeクラスをパラメータとして取り、現在の月の従業員の給与を整数値として返す "CalculateSalary"メソッドがEmployeeクラスにあるとします。今、誰かがその方法を使いたいと思ったら。彼は従業員オブジェクトがどのように給与を計算するか気にする必要はありませんか?彼が関心を寄せる必要があるのは、メソッドの名前、その入力パラメータ、および結果のメンバの形式です。 抽象化では、オブジェクトのユーザー(クライアント)に関係する詳細のみが表示されます。クラスを使用しているクライアントは、クラスの操作方法のような内部の詳細を意識する必要はありませんか?彼は少数の細部を知る必要がある。これは確かにコードの再利用に役立ちます。
インターフェイス:インターフェイスは、オブジェクトが実行できるアクションの説明です。たとえば、ライトスイッチを反転すると、ライトが点灯し、あなたは気にしません。オブジェクト指向プログラミングでは、インターフェイスは、オブジェクトが「X」になるために必要とするすべての機能の説明です。ここでも、例として、「ACTS LIKE」のライトは、turn_on()メソッドとturn_off()メソッドを持つ必要があります。インターフェイスの目的は、コンピュータにこれらのプロパティを適用させ、TYPE Tのオブジェクト(インターフェイスに関係なく)にX、Y、Zなどの関数が必要であることを知ることです。
インターフェイスは、オブジェクトがオブジェクト(クラス)の特定のプロパティを強制できるプログラミング構造/構文です。たとえば、車のクラスとスクーターのクラスとトラックのクラスがあるとします。これらの3つのクラスにはそれぞれ、start_engine()アクションが必要です。各車両の「エンジンが始動する」方法は各特定のクラスに委ねられますが、start_engineアクションが必要であるという事実はインターフェースのドメインです。
両方の説明が同じことを言っているわけではありませんか?それで彼らは同じか異なっていますか?
私は「抽象化」がより一般的な単語(より抽象的なbtw)であると理解しています。1.理論的な方法OOPの問題について考える。 2ソフトウェアのキャノン/パターン。ワード "インターフェイス"はより専門的で、コードを書くことに属します(プログラミング) –