데이터 과학

상속(Inheritance) 본문

프로그래밍 언어론/JAVA 기초

상속(Inheritance)

티에스윤 2022. 11. 6. 22:27

자바언어의 상속(Inheritance) 개념에 대해 설명해 보겠습니다. 

 

부모(parent) 클래스의 기능을 자식(child) 클래스가 사용할 수 있게 만든 기능입니다. 

부모 클래스가 가지고 있는 멤버 변수와 멤버메소드를 자식 클래스로 사용할 수 있습니다. 

자식 클래스를 여러 개 만들 수 있습니다. 

 

상속을 하는 이유는 공통적 사용하는 멤버변수와 멤버메소드를 하나의 클래스로 선언하여 부모 클래스로 만들어서 공유하고 자식 클래스가 그것을 확장(extends)하여 기능을 확산하는 데 있습니다. 

 

하지만, 다음의 경우는 상속 할 수 없습니다. 

 

1. private 선언된 변수나 메소드 (지역변수)

2. 생성자 

3. 패키지가 다른 경우 

 

 

상속하는 방법은 다음과 같습니다. 

 

public class parent{ .... }   // 부모 클래스

public class child extends parent { .... } // 자식 클래스

 

 

간단한 예제를 하나 봅시다. 

 

 

class parent {
   String name;
   int number;
   
   public void Department(){
       System.out.println("국제인문자연 " + name+" "+number);
   }
}

public class Child extends parent {
    Child (String name, int number){
        this.name=name;                    // this 문법입니다. this.name은 먼저 선언된 변수입니다.
        this.number=number;
    }
    
    
    public static void main(String args[]) {
      Child c=new Child("김아무개", 10155 );
      c.Department();
  
    }
}

 

결과:

 

국제인문자연 김아무개 10155

 

 

생성자는 상속이 안되는 성질이 있습니다. 

하지만 자식클래스에서 super()라는 함수를 사용하면 생성자의 내용을 가져올 수 있습니다. 

 

class parent {
   String name;
   int number;
   
      parent (String name, int number){
        this.name=name;
        this.number=number;
      }
   
   public void Department(){
       System.out.println("국제인문자연 " + name+" "+number);
   }
}

public class Child extends parent {
    Child (){
        super("김아무개", 10155 );    // super는 내부에서 다른 줄 보다 먼저 사용해야 합니다.
    }
    
    
    public static void main(String args[]) {
      Child c=new Child();
      c.Department();
  
    }
}

 

 

결과:

 

국제인문자연 김아무개 10155

 

 

상속은 부모클래스에서 자식클래스로 확장하는 개념입니다. 

상속에서 하나의 부모 클래스는 여러 개의 자식 클래스는 가질 수 있습니다. 

상속은 여러개의 부모 클래스가 하나의 자식 클래스를 상속할 수 없습니다.

상속은 단일 상속만 가능합니다. 

 

다중 상속이 가능한 개념으로는 인터페이스(interface)가 있습니다. 

 

상속에 대한 예제를 좀 더 학습하려면 아래 링크에 있는 예제를 한번 읽어 보는 것이 좋습니다. 

 

https://tsyoon.tistory.com/197

 

상속 예제

extends 확장 명령어를 사용하는 자바에서의 상속은 공통적인 내용을 기준으로 하위 클래스에서 확장의 개념으로 내용을 추가하는 개념으로 사용합니다.  아래 내용은 Student에서 GradeStudent와 Unde

tsyoon.tistory.com

 

 

 

 

 

프로그램 설계방법 이론 중 UML에서 class diagram에 대한 내용입니다. 

 

 

'프로그래밍 언어론 > JAVA 기초' 카테고리의 다른 글

인터페이스 (interface)  (0) 2022.11.13
추상 클래스와 오버라이딩  (4) 2022.11.13
메소드 오버로딩  (7) 2022.11.05
생성자 (constructor)  (8) 2022.10.30
배열 (array)  (1) 2022.10.23