day 11インタフェースマルチステート演算子(instanceof)

2404 ワード

1.インタフェース
  • インタフェースは抽象クラスより抽象的であり、インタフェースは抽象メソッド
  • のみである.
    public interface Usb {
    
        public static final String name ="small";
        public abstract void open();
        public abstract void close();
    }
    public static final                           ,final        ,          (    static)
    public abstract         default         public              
    
  • インタフェースは抽象クラスに類似していても直接newすることはできず、クラス上書きを実現するすべての方法で
  • を作成することができる.
  • インタフェースクラスは複数継承可能であり、通常クラスは複数階層継承可能であり、セキュリティの問題が発生しないのは、2つの親に同名のメソッドがあるとしても、メソッドを書き換えるためにクラスを実装する必要があるためであり、通常クラスにメソッド体があると、どの親メソッドを実行するか分からない場合があるためである
  • .
  • 1クラスは親クラスの複数のインタフェースクラスを継承できますが、すべての抽象メソッドを
  • に書き換える必要があります.
  • 継承された複数のインタフェースクラスには重複メソッドがあることに注意するが、1つの戻り値があり、1つの
  • がない.
  • 安全上の危険性があるかどうかを見るには、親の方法があるかどうかを見なければならない.
  • インタフェースとインタフェースとの間でもextends
  • を継承することができる.
  • インタフェースは結合性を低減することができ、インタフェース規則を満たすため、インタフェース向けプログラミング
  • が必要である.
  • 抽象クラスは、特定のオブジェクトが有する特性であり、インタフェースは、あるオブジェクトの特性
  • である.
    class        extends       implements  
           ,        
    
  • はインタフェースを優先的に使用し、抽象クラスを少なくすると結合
  • が低下する.
  • インタフェースは、パラメータ
  • として使用することができる.
    public class Computer implements Usb {
    
        
        public void open( ) {
        System.out.println("    "); 
        }
    
        
        public void close( ) {
            System.out.println("    "); 
        }
        public void useUsb(Usb usb) {//Usb                  usb    
            usb.open();
            usb.close();
            
        }
    
    }
    ---------------------------------------------------------------
    public class text {
        public static void main(String[] args) {
    Computer computer=new Computer();
    System.out.println(a);
            computer.open();    
            computer.close();
            computer.useUsb(computer);//computer    USB    
            
        
        }
    }
    

    2.マルチステート
  • 多態は継承関係を研究する
  • である.
    Fu fu=new zi();
    fu.    ;
        :    ,    
        :       
         ,                   
    

    3.演算子
  • instanceofは参照データ型を比較し、継承関係のみを判断する
  • .
    class B extends A  ;
    class C extends A  ;
    A a=new B;
    A a=new C;
    if(a instanceof B)  a B  
                      b    c  
    
    
  • マルチステートでの遷移自動リフト(子は親のように)強制変換(親は子に変換され、前例ではB b=(B)a;)
  • マルチステートは共有メンバーを呼び出すことができるが、サブクラス固有メンバーを呼び出すことはできない
  • .
  • alt+shift+f 6編集ウィンドウ切り替え、alt+←→同様可能;alt+shift+f 8 debugモード切替