クラス間の関係

1810 ワード

継承
定義:既存のクラスを再使用して新しいクラスを作成する
  • コードを共同で管理できます.
  • extendsを使用して継承します.
  • class Parent{}
    class Child(자손 클래스) extends Parent(조상 클래스){}
    
    //자손 클래스가 조상클래스를 포함하고 있는 형태
  • サブクラス祖先クラスのすべてのメンバー(作成者、初期化ブロックを除く)
  • を継承
  • 子のメンバー数は、祖先のメンバー数と同じまたはそれ以上です.
  • public class Main{
        public static void main(String[] args) {
            Color_Tv color = new Color_Tv();
            Black_White_Tv black = new Black_White_Tv();
            System.out.printf("color.display = %s, black.display = %s\n",color.display, black.display);
            System.out.printf("color.MAXVOLUME = %d, black.MAXVOLUME = %d",color.MAX_VOLUME, black.MAX_VOLUME);
            System.out.println();
            Tv.MAX_VOLUME = 200;
            System.out.printf("color.MAXVOLUME = %d, black.MAXVOLUME = %d",color.MAX_VOLUME, black.MAX_VOLUME);
        }
    }
    class Tv {
        static int MAX_CHANNEL = 20;
        static int MIN_CHANNEL = 0;
        static int MAX_VOLUME = 20;
        static int MIN_VOLUME = 0;
    }
    class Color_Tv extends Tv{
        String display = "Color";
    }
    class Black_White_Tv extends Tv{
        String display = "Black_White";
    }
    //출력 : 
    color.display = Color, black.display = Black_White
    color.MAXVOLUME = 20, black.MAXVOLUME = 20
    color.MAXVOLUME = 200, black.MAXVOLUME = 200
  • javaは単一のみ継承でき、複数の祖先クラスから継承できない複数の継承
  • 含む
    定義:クラスのメンバー変数で他のタイプのクラスの参照変数を宣言します.
    class two{
        int x=0,y=1;
    }
    class three{
        int x=0,y=1,z=2;
    }
    次のように合成
    class two{
        int x=0,y=1;
    }
    class three{
        two t = new two();
        int z=2;
    }
    関係の決定方法
    継承
    aはb:a継承b
  • 例:電気自動車は自動車(電気自動車が自動車の属性を継承する)
  • である.
    含む
    aはbを有する:aはbを含む
  • 例:電気自動車は車輪(電気自動車は車輪属性を含む)
  • を有する.