본문 바로가기
Programming/JAVA

[JAVA] 8. 상속과 다형성

by 기딩 2023. 10. 19.
728x90

Section 01. 상속

상속 필요성

  • 상속 : 기존 클래스 기능 사용 → 새 클래스
  • 클래스 간 관계, 구조 조직화, 가독성, 해석 가능성 향상
  • 응용 프로그램의 유지,관리
  • 코드 재사용

- 자식 클래스는 부모의 모든 멤버 요소 소유 & 추가 가능

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

// 멤버 요소

}

 

Is - A 관계(is a relationship) 

    …는 …이다. → extends, Implements

- 모든 클래스는 java, lang, Object의 하위 클래스

- 상속 관계


Section 02. 상속의 유형

단일 상속 : 하나의 클래스에 의해서만 확장

다단계 상속 : 상속받은 자식 클래스가 또 다른 클래스에 상속

 

super 부모 클래스 참조

  • 부모 클래스의 멤버 요소에 접근 가능한 명령어
  • super.name = “SuperCat”;
  • super()를 이용한 생성자 접근
  • super(); 부모 클래스의 생성자 호출
  • 자식 클래스의 생성자 첫 행에 이 명령어 o

 

Section 03. 다형성

  • 필요성
    • 상속과 메서드 재정의 활용 → 프로그램 확장
    • 부모의 참조 변수로 자식의 객체에 접근 → 코드 효율성
    • 상위는 공통 부분 제공, 하위는 각 기능을 구현

Section 04. 다형성의 유형

  • 다형성의 유형
    • 컴파일타임 다형성 : 정적 다형성 → 연산자 오버로딩, 메서드 오버로딩
    • 런타임 다형성 : 동적으로 재정의된 메서드에 대한 호출이 런타임에 해결되는 프로세스 → 메서드 오버라이딩
  • 메서드 오버로딩 : 메서드명 같지만 다른 매개변수 사용하는 프로세스
  • 공간 효율, 이해 easy → 디버깅 good
  • 메서드 오버라이딩 : 상속받은 메서드를 자식에서 특정 형태로 재정의
    • 메서드 재정의 : 같은 이름, 인수의 개수, 유형 동일, 같은 반환형
    • 코드의 복잡성 ↓, 일관성
728x90

'Programming > JAVA' 카테고리의 다른 글

[JAVA] 10. 패키지  (1) 2023.10.23
[JAVA] 9. 추상클래스와 인터페이스  (0) 2023.10.23
[JAVA] 7. 클래스와 객체  (0) 2023.10.19
[JAVA] 6. 배열과 문자열  (1) 2023.10.19
[JAVA] 2. 자료형  (0) 2023.10.19