본문 바로가기
JAVA/기초

[JAVA 기초] 08 상속과 다형성

by 푸_푸 2022. 8. 13.
728x90

*상속
- 상속 : 물려받는다는 의미
B 클래스가 A 클래스를 상속받으면 B 클래스는 A 클래스의 멤버 변수와 메서드를 사용할 수 있음
이때 A 클래스를 부모 클래스, 상위 클래스라고 하며, B 클래스를 자식 클래스, 하위 클래스라고 함
상속을 구현할 때는 extends 예약어를 사용함

class B extends A {
}


*protected 예약어
-protected : 상위 클래스에서 작성한 함수나 메서드 중 외부 클래스에서 사용할 수 없지만 하위 클래스에서는 사용할 수 있도록 지정하는 예약어

*super 예약어
- super : 하위 클래스에서 상위 클래스로 접근할 때 사용
상위 클래스의 멤버 변수나 메서드를 참조

*상위 클래스로 묵시적 형 변환
하위 클래스인 B는 B형이면서 동시에 A형이기도 함
하위 클래스로 인스턴스를 생성할 때 상위 클래스로 형 변환하여 선언할 수 있음

A b = new B();


b 변수는 A 클래스의 멤버 변수와 메서드만 사용 가능

*메서드 오버라이딩
메서드 오버라이딩 : 상위 클래스 메서드를 하위 클래스에서 재정의
오버라이딩을 하려면 반환형, 메서드 이름, 매개변수 개수, 매개변수 자료형이 반드시 같아야 함

*가상 메서드
상속에서 상위 클래스와 하위 클래스에 같은 이름의 메서드가 존재할 때 호출되는 메서드는 인스턴스에 따라 결정됨
선언한 클래스형이 아닌 생성된 인스턴스 메서드를 호출함

*다형성
- 다형성 : 하나의 코드가 여러 자료형으로 구현되어 실행되는 것
상위 클래스에서 공통부분의 메서드를 제공하고 하위 클래스에서 추가 요소를 덧붙여 구현하면 코드 양도 줄어들고 유지보수도 편리함

*IS-A 관계
- IS-A 관계 : 일반적인 개념과 구체적인 개념의 관계
상속은 사람은 포유류이다 같은 관계에서 사용하는 것이 효율적
단순 코드 재사용을 목적으로 서로 관련 없는 개념의 클래스들을 상속관계로 사용하는 것은 좋지 않음

*다운 캐스팅
- 다운 캐스팅 : 상위 클래스로 형 변환 되었던 하위 클래스를 다시 원래 자료형으로 형 변환

*instanceof 예약어
- instanceof : 다운 캐스팅을 하기 전에 상위 클래스로 형 변환된 인스턴스의 원래 자료형을 확인하는 예약어

A b = new B();
if(b instanceof B){    //b의 인스턴스 자료형이 B형이라면
    B c = (B)b;    //인스턴스 b를 B 형으로 다운캐스팅
}
728x90

'JAVA > 기초' 카테고리의 다른 글

[JAVA 기초] 10 인터페이스  (0) 2022.08.16
[JAVA 기초] 09 추상 클래스  (0) 2022.08.15
[JAVA 기초] 07 배열과 ArrayList  (0) 2022.08.12
[JAVA 기초] 06 클래스와 객체 2  (0) 2022.08.11
[JAVA 기초] 05 클래스와 객체 1  (0) 2022.08.10

댓글