클래스간의 관계

coding by 스플릿·2021년 12월 23일
0

Java1

목록 보기
26/44

상속

정의 : 기존의 클래스를 재사용하여 새로운 클래스를 작성

  • 코드를 공통적으로 관리할 수 있다. ( 코드의 양이 적어진다, 관리가 용이하다 )
  • 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
  • 자바는 단일 상속만 가능하다 여러 조상 클래스로부터 상속받는 다중 상속 불가

포함

정의 : 클래스의 멤버변수로 다른 타입의 클래스의 참조변수를 선언하는 것

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를 포함

  • 예시 : 전기차는 바퀴를 가지고 있다 (전기차가 바퀴의 속성을 포함하고 있음)

0개의 댓글