자바

상속(inheritance)

khon98 2020. 6. 17. 22:27

상속

- 클래스를 만들 때 다른 클래스가 가지고 있는 메서드 혹은 변수를 가져와서 사용하는 방법 중에 하나이다

 

- 참조와는 달리 메서드와 변수를 물려받아 자기 자신 것처럼 사용하는 개념을 의미한다

 

- 기존에 만든 클래스에 새로운 기능을 추가하거나 이미 만들어진 메서드를 다시 구현할 경우 사용한다

 

- 기존에 만들어진 클래스를 직접 손대지 않고 추가 혹은 수정을 가할 수 있으므로 객체 지향 프로그래밍에서는 굉장히 많이 사용하는 기법이다

 

- 자바에서는 다중 상속을 지원하지 않으며 단일 상속만을 지원한다

 

- 자바에서는 상속을 받기 위한 코드를 작성하지 않으면 (개발자가 직접 상속시킨 클래스가 없다면) Object라는 클래스를 자동으로 상속받게 된다 

 

부모와 자식

- 객체 지향 언어에서는 물려 주는 쪽을 부모 클래스(Super Class)라고 부르며 물려받는 쪽을 자식 클래스(Sub Class)라고 부른다

 

상속 문법

extends

- 클래스를 만들 때 특정 클래스를 상속 받기 위해서는 다음과 같이 한다

 

class 클래스 이름 extends 부모클래스

 

InheritanceTest.java

-----------------------------------------------------------------------------------------------

Class1 c1 = new Class1( );

c1.v1 = 100;

c1.method1( );

 

c1.v2 = 200;

c1.method2( );

 

c1.method3( );

}

-----------------------------------------------------------------------------------------------

 

Class1.java

-----------------------------------------------------------------------------------------------

public class Class1 extends Class2{

 

      int v1;

 

      public void method1( ) {

           System.out.println("Class1의 변수 v1 : " + v1);

      }

 

      public void method3( ) {

           v2 = 1000;

           method2();

     }

}

-----------------------------------------------------------------------------------------------

 

Class2.java

-----------------------------------------------------------------------------------------------

public class Class2 {

 

      int v2;

 

      public void method2( ) {

           System.out.println("Class2의 변수 v2 : " + v2);

      }

}

-----------------------------------------------------------------------------------------------