ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 6주차 과제: 상속 #6
    JAVA 기본 2021. 2. 23. 14:29
    728x90

    목표

    자바의 상속에 대해 학습하세요.

    학습할 것 (필수)

    • 자바 상속의 특징
    • super 키워드
    • 메소드 오버라이딩
    • 다이나믹 메소드 디스패치 (Dynamic Method Dispatch)
    • 추상 클래스
    • final 키워드
    • Object 클래스

    상속이란

    ㄴ부모클래스의 변수롸 메소드를 물려받는것

     

    문법

    class 자식클래스명 extends 부모 클래스명{ }

     

    Super 키워드

    부모클래스로 부터 상속받은 변수와 함수를 자식 클래스에서 접근하는데 사용하는 것

    다시 말해 부모클래스를 말한다.

    부모 클래스의 멤버와 자식 클래스의 멤버 이름이 같을 경우 super 키워드를 사용하여 구별할 수 있다.

     

    +자식 클래스의 인스터스를 생성하면 부모클래스의 모든 멤버까지도 포함된 인스턴스가 생성됨

    따라서 부모클래스의 멤버를 초기화 하기 위해서는 자식클래스가 부모클래스의 생성자도 호출해야함

    따라서 자바는 자동으로 부모클래스의 멤버를 초기화한다

     

    하지만 부모클래스가 기본생성자가 없이 매개변수를 가진 생성자만 있다면 명시적으로 기본 생성자를 선언해야한다.

     

    메소드 오버라이딩

    오버라이딩 = 재정의

    자식클래스가 새로운 변수를 추가만 하는것이 아니라 기존 클래스의 메소드을 변경하는 것을 말한다.

     

    단, 제약조건이있다.

    1. 오버라이딩이란 메소드의 동작만을 재정의하는 것이므로, 메소드의 선언부는 기존 메소드와 완전히 같아야 합니다.

        하지만 메소드의 반환 타입은 부모 클래스의 반환 타입으로 타입 변환할 수 있는 타입이라면 변경할 수 있습니다.

    2. 부모 클래스의 메소드보다 접근 제어자를 더 좁은 범위로 변경할 수 없습니다

    3. 부모 클래스의 메소드보다 더 큰 범위의 예외를 선언할 수 없습니다.

     

    다이나믹 메소드 디스패치

     

    추상클래스

    무조건 상속해서 사용해야함

    추상메소드

    사용할려면 오버 라이딩해서 사용해야함

    결론적으로 상위는 공통적인것만 정의하고 실제 사용을 위해서는 사용하는곳에서 정의하게 만듬

    클래스의 메소드중에 하나라도 추상이면 클래스도 추상이다.

     

    왜 사용하는가?

    다양한 결과를 도출해야하는 상황에서 공통적인것만 정의해서 만들때

     

    +디자인 패턴

    프로그래밍이라는 것은 반복되는 패턴이 있다. 이런 패턴들을 모아서 정리한 것이 디자인 패턴(design pattern)이다. 

    장점1  좋은 설계를 단기간에 학습할 수 있다는 점

    장점2  소통에 도움이 된다는 점

     

    final 키워드

    상속/변경을 금지하게 만든 것

     

    Object 클래스

    자바에서 따로 상속하지 않아도 자동으로 상속되는 클래스가 있다.

    자바에는 수많은 클래스가 이미 라이브러리화 되어있고 그 클래스를 무조건적으로 가지고있어야한다.

    예) toString equal 등등

    'JAVA 기본' 카테고리의 다른 글

    8주자 과제: 인터페이스 #8  (0) 2021.02.24
    7주차 과제: 패키지 #7  (0) 2021.02.23
    5주차 과제: 클래스 #5  (0) 2021.02.22
    4주차 과제: 제어문  (0) 2021.02.02
    3주차 과제: 연산자  (0) 2021.02.02

    댓글

Designed by Tistory.