부트캠프 기록/Section1

[객체지향] 상속

bbangduck 2023. 2. 24. 16:45
  • 상위 클래스-하위 클래스의 상속 관계의 핵심을 이해하고, 그 장점을 설명할 수 있다.
    • 상속: 기존의 클래스를 재활용하여 새로운 클래스를 작성하는 자바의 문법 요소
    • 두 클래스를 상위클래스와 하위클래스로 나누어 상위클래스의 멤버(필드, 메서드, 이너클래스)를 하위 클래스와 공유 => 코드 재사용률 높아짐

 

  • extends 키워드를 사용하여 두 개 이상의 클래스 간 상속 관계를 정의할 수 있다.
    • 자바의 객체지향 프로그래밍에서는 단일 상속만을 허용함
    • 인터페이스 구현을 통해서 다중 상속 효과를 낼 수 있음

 

  • 포함관계와 상속관계의 차이를 설명할 수 있다.
    • 포함: 상속처럼 클래스를 재사용할 수 있는 방법이지만 클래스의 멤버로 다른 클래스 타입의 참조변수를 선언하는 것
    • Employee는 Address를 가지고 있다

 

  • 상속 관계에서 사용할 수 있는 메서드 오버라이딩의 정의, 성립 조건, 장점을 이해하고 이를 활용할 수 있다.
    • 메서드오버라이딩: 상위 클래로부터 상속받은 메서드와 동일한 이름의 메서드를 재정의하는 것
    • 성립조건
      • 메서드의 선언부(메서드 이름, 매개변수, 변환타입)이 상위클래스의 메서드와 일치
      • 접근 제어자의 범위가 상위 클래스의 메서드와 같거나 넓어야 함
      • 예외는 상위 클래스의 메서드보다 많이 선언할 수 없음

 

  • super 와 super() 의 차이를 설명할 수 있다.
    • super: 상위클래스의 객체
    • super( ) :상위클래스의 생성자 호출 , 생성자 안에서만 사용가능, 반드시 첫 줄에 와야 함
    • 모든 생성자의 첫 줄에는 반드시 this() 또는 super()가 선언되어야 함
      • 만약 super()가 없는 경우, 컴파일러가 자동으로 삽입
      • 이때 상위클래스에 기본 생성자가 없으면 에러 발생
      • 클래스를 만들 때는 자동으로 기본 생성자를 생성하는 것을 습관화

 

  • Object 클래스가 자바 클래스의 상속계층도에서 최상단에 위치한다는 사실을 이해할 수 있다.
    • 자바의 모든 클래스는 Object 클래스로부터 확장된다

Object 클래스 대표 메서드

메서드명 반환타입 주요 내용
toString() String 객체 정보를 문자열로 출력
equals(Object obj) boolean 등가 비교 연산(==)과 동일하게 스택 메모리값을 비교
hashCode() int 객체의 위치정보 관련. Hashtable 또는 HashMap에서 동일 객체여부 판단
wait() void 현재 쓰레드 일시정지
notify() void 일시정지 중인 쓰레드 재동작

 

 

 

 

 

 

 

'부트캠프 기록 > Section1' 카테고리의 다른 글

[ 객체지향 ] 다형성  (0) 2023.02.26
[ 객체지향 ] 캡슐화  (0) 2023.02.25
[객체지향] 내부클래스  (0) 2023.02.22
[ 객체지향 ] 생성자  (0) 2023.02.17
[ 객체지향 ] 필드와 메서드  (0) 2023.02.16