7. 상속과 생성자

2023. 4. 3. 14:37·Java Spring

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
'Java Spring' 카테고리의 다른 글
  • 9. 접근 제어자
  • 8. Overriding & Overloading
  • 6. 객체 지향 프로그래밍
  • 5. 메소드, 입출력
pearl.k
pearl.k
이화여대 공대, PS, 개발
  • pearl.k
    Pearl
    pearl.k
  • 전체
    오늘
    어제
    • 분류 전체보기 (53)
      • Java Spring (10)
      • Android (1)
      • Kotlin (7)
      • Coroutines (2)
      • PS 기록 (20)
        • CP (6)
        • Algorithm (6)
        • 내실 쌓기 (3)
      • CS (0)
      • IT - 취업 DB (5)
      • SSAFY (2)
        • Algorithm (1)
      • Daily (3)
      • Books (2)
      • 기타 부트캠프 기록 (0)
        • 네이버 부스트캠프 (0)
        • 우아한테크코스 (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • Github
    • soundlcloud
  • 공지사항

  • 인기 글

  • 태그

    백준
    앳코더309
    sw마에스트로 코테
    코딩테스트
    백준 2423
    싸피 면접 후기
    웹모바일과정
    싸피 12기
    다익스트라
    채용의나라
    http stream
    앳코더후기
    java
    solved.ac
    싸피 서울캠
    Grand Arena Party div2
    액티비티컴포넌트
    자바@
    첫앳코더
    백준 13334
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
pearl.k
7. 상속과 생성자
상단으로

티스토리툴바