본문 바로가기

Java/Java 문법

[Java] 상속 (Inheritance), extends

728x90
반응형

상속 (Inheritance)

 

상속은 Class 간의 계층적 관계를 구성하는 문법이다.

 

상속받은 Class는 상속된 Class의 특성을 그대로 사용하는 것이 가능하다.

 

이때 상속되는 Class를 SuperClass(부모 클래스), 상속받는 Class를 SubClass(자식 클래스)라고 한다.

 

한 클래스는 하나의 SuperClass만을 상속받을 수 있으며 클래스가 그 자체를 상속받는 것은 불가능하다.

 

 

 

 

extends

 

extends 키워드를 사용하여 상속을 명시할 수 있다.

 

예시 코드를 하나 작성해보겠다.

 

class Number {
    public int i, j;
    public void PrintNum() {
        System.out.println(i);
        System.out.println(j);
    }
}

class Plus extends Number {
    public int k;
    public void PrintPlus() {
        System.out.println(i+j+k);
    }
}

public class Example {
    public static void main(String [] args) {
        Plus a = new Plus();
        a.i = 10;
        a.j = 15;
        a.k = 5;
        a.PrintNum();
        a.PrintPlus();
    }
}

 

위 코드에서 Plus Class는 Number Class를 상속받았기 때문에 i, j, PrintNum()에 접근하는 것이 가능하다.

 

하지만 상속받았다고 하더라도 private으로 명시된 멤버변수에는 접근할 수 없다.

 

 

 

다단계 상속

 

3개 이상의 클래스 간 상속도 가능하다.

 

이를 통해서 여러 클래스 간의 계층적 관계를 표현할 수도 있다.

 

class Number {
    public int i, j;
    public void PrintNum() {
        System.out.println(i);
        System.out.println(j);
    }
}

class Plus extends Number {
    public int k;
}

class PlusPrint extends Plus {
    public void PrintPlus() {
    	int sum = i + j + k;
        System.out.println(sum);
    }
}

public class Example {
    public static void main(String [] args) {
        PlusPrint a = new PlusPrint();
        a.i = 10;
        a.j = 5;
        a.k = 15;
        a.PrintPlus();
    }
}

 

 

 

728x90
반응형