JAVA2) Review-상속

지우·2025년 12월 30일

java2

목록 보기
2/15

<상황>

A <- B <- C 대로 상속,
A의 메소드 a
B의 메소드 a, b
C의 메소드 a, b, c
➡️a를 재정의(Override) / C는 a와 b를 재정의


업캐스팅

A one = new C();
B two = new C();
C three = new C();

C를 누구의 관점으로 보느냐에 따라 접근할 수 있는 요소의 범위가 달라짐!!!!

상속과 인터페이스

1) 상속

  • 기존의 클래스를 물려받아 새로운 클래스를 만드는 것
  • 목적 : 코드의 재사용, 계층 구조 형성
  • 부모의 변수와 메소드 그대로 물려받음
  • 자식 클래스에서 필요한 부분만 오버라이딩 가능
  • 단일 상속만 지원 ( 한 클래스는 하나의 부모만 가질 수 있음 )

2) 인터페이스

  • 클래스가 반드시 구현해야 하는 행동의 규격을 정의
  • 목적 : 다형성 구현, 결합도 낮추기, 표준화
  • 메소드의 이름과 매개변수만 정의함 ( 추상 메소드 )
  • 다중 구현 가능 ( 클래스는 여러 개의 인터페이스를 동시에 구현 가능 )
  • 인터페이스를 구현한 클래스는 인터페이스에 정의된 모든 메소드를 반드시 구현해야 함

언제 무엇을 구현??

1) 상속
- 객체들 사이에 명확한 계층 구조가 있을 때
- 여러 클래스에서 공유하는 공통 코드가 많아 이를 부모 클래스에서 한 번에 관리하고 싶을 때
2) 인터페이스
- 상속 관계가 없는 클래스들이 공통된 행위를 해야할 때
- 유연성이 필요할 때 ( 구현 클래스가 바뀌어도 다른 코드에 영향 X )

0개의 댓글