インタフェース

2496 ワード

インタフェース

  • プログラムとサーバ、システム間のプログラムは、直接実行するのではなく、実行されます.
  • Javaにおけるインタフェースの概念
  • は、オブジェクト向けプログラミングにおける部品置換特性
  • を利用する.
  • 呼び出しコード<=>インタフェース<=>実行コード
  • 呼び出しコードとインタフェースは1つしかありませんが、複数の実行コードがあります.
  • 機能
  • 、実行コードの交換と追加だけで、実行コードを変更する必要はありません

    インタフェース宣言

  • 定数+メソッド(抽象メソッドとして定義)
  • interface 인터페이스명 {
       자료형 상수명 = 값;
       리턴타입 추상메서드 명();
    }

  • インタフェースのすべてのメンバー(インタフェース名、定数名、メソッド名を含む)は、共通アクセス制限者です.static final、abstractキーワードが欠けていても、コンパイラは自動的に追加されます.

  • したがって,インタフェース内のすべての変数は定数であり,すべての方法は抽象的な方法である.

  • Java 8のバージョンから、定数、抽象メソッドに追加して、デフォルトメソッドと静的メソッドを宣言できます.
  • defaultメソッド
  • 方法
  • 、各インプリメンテーションクラスが同じ機能を有するインプリメンテーション(実行ブロック)
  • 静的メソッド
    メソッド
  • は、オブジェクト
  • を作成せずに直接実行する.

  • クラス間継承、インタフェース、クラス実装

  • 複数の実装をサポート

  • インタフェース間で継承可能(複数の継承)

  • インタフェースの方法は実装されなければならない.

  • オブジェクトは作成できません.実装されたクラスはオブジェクトを作成します.
  • 
    # 인터페이스
    public interface Printer {
       void print();
    }
    
    public interface Scanner {
       void scan();
    }
    
    public interface fax {
       void fax();
    }
    
    # 구현체
    public class Complexer implements Printer, Scanner, Fax {
      public void print() { };
      public void scan() { };
      public void fax() { };
    }

    インタフェースの多形性

  • 多形性:多様な資料型を有する特性
  • インタフェースを実装する実装クラスは、インタフェースによって自動的に変換することができる.
  • したがって、実装インタフェースの複数のクラスがオブジェクトとして作成され、異なる結果を実装するために同じ方法が実行されます.なぜ
  • 多形概念を使用するのか-オブジェクト向け概念の核心
  • を直接実行するのではなくインタフェースを介してプログラムを実行する場合は、インプリメンテーション1のコードをインプリメンテーション2に置き換えるだけでよい.(保守と管理のメリット)
  • # 인터페이스
    public interface DBProgram {
       void dbProcess();
    }
    
    # 구현체
    public class OracleProgram implements DBProgram {
       
       @Override
       public void dbProcess() {System.out.println("Oracle process")};
    }
    
    public class MySQLProgram implements DBProgram {
       
       @Override
       public void dbProcess() {System.out.println("MySQL process")};
    }
    
    public class MSSQL implements DBProgram {
       
       @Override
       public void dbProcess() {System.out.println("MSSQL process")};
    }
    
    # main문 실행
    public class Main {
       public static void main(String[] args) {
          DBProgram db = new OracleProgram();
          # DBProgram db = new MySQLProgram();    // 구현체만 변경하면 된다!!!
          # DBProgram db = new MSSQLProgram();    // 구현체만 변경하면 된다!!!
          db.dbProcess();
        }
    }