🐨 [JAVA]型移行🐨

1739 ワード

参照データ型の変換


リファレンスデータ型
  • 配列、クラスなど、オブジェクトを他の参照データ割り当てまたは他のクラスとして作成すると、参照データ変換が発生します.
  • 暗黙変換
  • 明示的な変換
  • (1)参照データ変換条件

  • 継承関係のクラス間では、タイプ
  • にのみ変換できます.
  • 異なる種類のクラス間で変形は発生しません.
  • 親参照データ変数は、子オブジェクトを参照できますが、子参照データ変数は親オブジェクトを参照できません.
  • 行きましょう。選択

  • 特定のオブジェクトは、子の形状から親の形状に変換する
  • .
  • 型が正しい限り、黙示型変換が行われます.(選択)
    ->すなわち、スーパークラスをサブクラスに変換する場合、デフォルト変換(アップリンク)
  • 形式

  • スーパークラスオブジェクト=newサブクラス()
  • class Person{}
    class Student extends Person{}
    ...
    Person p = new Sudent(); //수퍼 클래스 객체 = new 서브클래스
    Student s = new Person(); //오류 발생 -> 서브클래스는 수퍼클래스를 참조할 수 없다. 
    

    私。せんたくかく

  • 再放送元の形状
  • に戻る.
  • にアップロードされたものだけがダウンロードできます.
  • ダウンロード選択角は、強制選択角(明示)を原則とする.
  • 形式

  • サブクラスオブジェクト=(サブクラス)スーパークラスオブジェクト;
  • class Student extends Person{};
    ...
    Person p = new Student(); //업캐스팅 한 후 
    Student s = (Student)p; //다운 캐스팅 가능 

    クラス間の継承関係とオブジェクトの作成


    Bus、Truck、TaxがCarを引き継いだら、
    Car mycar = new Car();
    Bus mybus = new Bus();
    Truck mytruck = new Truck();
    Tax mytax = new Tax();
    
    mycar = mybus //컴파일 가능 (업캐스팅)
    mybus = mycar //컴파일 오류 (상속 관계 X)
    mybus = mytruck //컴파일 오류 (서브클래스가 참조 받으므로)
    mybus = (Bus)mycar //컴파일 가능, 실행오류 -> 업캐스팅X
    
    //mybus = (Bus)mycar가 실행 될라면 업캐스팅을 해줘야 한다. 
    Car mycar = new Bus(); //업 캐스팅
    Bus mybus = (Bus)mycar; //다운 캐스팅

    すべて仮想メソッド


    親クラス名を使用して子クラスメソッドを呼び出す方法を許可
  • アップリンクの場合、親クラスの名前を使用して子クラスを呼び出す方法
  • .
  • 元の継承関係では、親のオブジェクト変数は、子クラスにアクセスできないメソッドを指しますが、レポートが行われている場合は、子クラスメソッドにアクセスできます.
  • 注意事項
    演算子の例
  • オブジェクトタイプを比較する演算子で、右側のオブジェクトと左側のオブジェクトタイプを比較します.タイプが同じ場合はtrue、そうでない場合false、
  • です.