자바 상속 (Java Inheritance)
1. 상속 (Inheritance)
- 기존 클래스의 변수(데이터)와 메소드(로직, 코드)를 물려받아 새로운 클래스를 구성
- 코드의 중복 감소, 클래스의 간결화 가능
- 먼저 작성된 프로그램을 재사용함으로써 신뢰성 있는 프로그램을 손쉽게 개발
- 클래스 간 계층적 분류 및 관리가 가능하여 유지보수 용이
- class 서브클래스 extends 슈퍼클래스
2. 상속 특징
- 다중 상속을 지원하지 않는다.
여러 개의 클래스 상속 불가능 (부모 클래스는 한 개만 가질 수 있다.) - 상속 횟수에 제한을 두지 않는다.
- 모든 클래스는 java.lang.Object를 상속받는다.
3. 메소드 오버라이딩
- 부모 클래스가 가지고 있는 메소드를 그대로 가지고 와서 (리턴타입, 메소드명, 매개변수) 중괄호 안쪽 로직(알고리즘)만 재정의 하는 기법
4. 캐스팅 (Casting)
- Upcasting
하위 클래스가 상위 클래스 타입으로 자동 타입 변환 (다형성)
객체 내 모든 변수, 메소드에 접근할 수 없고 상위 클래스의 변수, 메소드에만 접근 가능
단, 하위 클래스가 상위 클래스의 메소드를 오버라이딩 한 경우에는 하위 클래스의 메소드를 호출 - Downcasting
업캐스팅 된 객체를 강제(명시적) 타입 변환으로 다시 되돌리는 것
업캐스팅 된 객체가 아니더라도 문법적 오류는 없지만, 실행 후 compile 시 문제 발생
※ 예시) 메소드 오버로딩과 오버라이딩 비교
'Java' 카테고리의 다른 글
자바 추상클래스 (Java abstract class) (0) | 2023.03.05 |
---|---|
자바 ArrayList (Java ArrayList) (0) | 2023.03.04 |
자바 객체 지향 프로그래밍 OOP (Java Object Oriented Programming) (0) | 2023.01.31 |
자바 메소드(Java Method) (0) | 2023.01.28 |
자바 이차원 배열(Java Two-dimensional array) (0) | 2023.01.22 |
댓글