웹개발/JAVA

상속(Inheritance)

bergerac 2025. 2. 19. 09:11

1. 상속이란?

한 클래스의 속성과 메서드를 다른 클래스가 물려받는것

- 기존의 클래스를 재사용하여 새로운 클래스를 작성하는 것

-코드의 재사용성, 중복제거(프로그램의 생산성을 향상시킨다.)

상속은 기본적으로 A는 B이다. 라는 구조가 갖추어져야 한다. (True/False) 판별 가능한 문장으로 하여야한다.

 

구현 : extends(확장하다)라는 키워드를 통하여 구현가능하다.

class (자식클래스) extends (부모클래스){}
class Parent{//부모클래스(기존클래스)
}
class Child extends Parent{//자식클래스(새로운 클래스)    
}

 

명칭 

상속해주는 클래스 (Parent) : 조상, 부모, 상위, 기반, 슈퍼 클래스

상속받는 클래스 (Child) : 자손, 자식, 하위, 파생, 서브클래스 

 

특징

부모 클래스의 속성과 메서드를 모두 상속받는다(즉, 생략하던 안하던 비슷)

자식 클래스에서는 부모클래스가 갖는 모든것은 상속받으며 자식만이 갖는 것들이 확장된다,

 

class Animal{
    String name;//동물의 이름
}

class Dog extends Animal{
    void bark(){
        System.out.println("강아지가 짖습니다");
    }
}

public class B_Inheritance {
    public static void main(String[] args) {
        Dog choco = new Dog();
        choco.name = "초코";
        System.out.println(choco.name);
        choco.bark();
    }
}

 

다음과 같이 클래스가 Dog인 choco가 name이라는 변수를 갖게 될 수 있는 이유가 Dog 클래스가 Animal 클래스를 상속하여 name이라는 변수를 사용할 수 있기 때문이다.

choco.name = "초코";

 

 

2. 상속에서의 생성자

상속받은 클래스에서 생성자를 호출할 수 있으며 부모에서 자식 순서로 호출할 수 있다.

자식 클래스에서 객체 생성 시, 자식 클래스는 해당 클래스의 생성자를 통해 객체를 생성한다.

>>자식 클래스의 생성자 호출 시 '항상' 부모 클래스의 생성자가 호출된다.

>>반드시 사용자 정의 부모 생성자 호출할 필요는 없다.

 

상속받은 자식 클래스의 경우 사용자 정의 부모 생성자의 호출이 없더라도 super(); 부모 클래스의 호출 키워드가 정의되어 있다.

 

자식 클래스가 상속받는 즉시 super(); 이 생성된다.

3. 상속 클래스명을 설정할 때의 주의점

https://bergerac.tistory.com/10

은 해당 링크를 참조하길 바란다. 같은 클래스명을 사용할 경우 충돌이 일어날 수 있다.

 

 

'웹개발 > JAVA' 카테고리의 다른 글

Overloading vs Overriding  (2) 2025.02.21
Array(JAVA에서 배열 활용법)  (1) 2025.02.20
제어자(Modifier)  (1) 2025.02.18
객체 지향 프로그래밍  (1) 2025.02.17
제어문(JAVA로 제어문 처리하기)  (1) 2025.02.15