Java Spring

7. 상속과 생성자

pearl.k 2023. 4. 3. 14:37

1. 상속

 상속은 객체 지향의 재활용성을 극대화 시킨 프로그래밍 기법이다. 상속이란, 어떤 객체가 있을 때 그 객체의 변수(필드)와 메소드를 다른 객체가 물려받을 수 있게 하는 기능이다. 기존의 객체를 유지하면서 어떤 기능을 추가하고 싶을 때 상속을 통해 자식 클래스를 만든다.  

 상속을 통해 코드의 중복을 제거하고(똑같은 기능을 가진 클래스를 또 만들지 않아도 된다), 기존의 부모 클래스를 개선할 경우에, 자식 클래스에도 그 혜택이 돌아간다. 

 결과적으로 상속의 효과는 다음과 같다. => 재활용성 증가 + 코드 중복 제거 + 유지보수 편리성

 

2. 생성자

  • 기본 생성자 : 매개변수가 있는 생성자가 있을 때, 기본적으로 생성자를 만들어 주지 않는다. 없을 때는 가능하다.
  • super ( ) : super 키워드는 부모 클래스와 부모 클래스의 생성자를 의미한다.
  • 하위 클래스에서 super( ) 를 사용할 때 주의점 : super( )가 가장 먼저 나와야 한다.
    • 부모 클래스가 초기화되기 전에 자식이 초기화 되는 것을 막기 위함이다.
class Calculator {
    int left, right;

    public Calculator(){}

    public Calculator(int left, int right){
        this.left = left;
        this.right = right;
    }

    public void setOprands(int left, int right) {
        this.left = left;
        this.right = right;
    }

    public void sum() {
        System.out.println(this.left + this.right);
    }

    public void avg() {
        System.out.println((this.left + this.right) / 2);
    }
}

class SubstractionableCalculator extends Calculator {
    public SubstractionableCalculator(int left, int right) {
        super(left, right);
    }

    public void substract() {
        System.out.println(this.left - this.right);
    }
}

class Main {

    public static void main(String[] args) {
        SubstractionableCalculator c1 = new SubstractionableCalculator(10, 20);
        c1.sum();
        c1.avg();
        c1.substract();
    }
}

 

 

'Java Spring' 카테고리의 다른 글

9. 접근 제어자  (0) 2023.04.03
8. Overriding & Overloading  (0) 2023.04.03
6. 객체 지향 프로그래밍  (0) 2023.03.27
5. 메소드, 입출력  (0) 2023.03.27
4. 반복문, 배열  (0) 2023.03.26