본문 바로가기
스터디/2209_자바의정석

6주차 과제 : 상속

by Jeong.dev 2022. 9. 29.

📌 자바 상속 특징

상속

- 기존 클래스 재사용해서 새로운 클래스 작성

- 자손은 조상의 모든 멤버를 상속 받는다. (생성자, 초기화 블럭 제외)

=> 자손의 멤버 개수는 조상과 같거나 많다.

- 조상의 변경은 자손에 영향을 주지만,

자손의 변경은 조상에 영향을 주지 않는다.

 

 

Object 클래스

- 모든 클래스의 최고 조상

- 자바는 단일 상속만 가능

- Object 클래스 메소드는 모든 클래스에서 사용 가능하다.

(모든 클래스가 Object 클래스 상속하니까)

 

대표 메소드

- toString() : 클래스이름@객체주소값 출력

- equals()

- hashCode()

 

* println() 메소드에 참조변수만 넣으면 toString() 메소드 호출한다.

ex. println(c.toString()); = println(c);

 

 

 

📌 오버라이딩

오버라이딩

- 상속받은 조상 메서드 내용을 변경하는 것

 

오버라이딩 조건 3가지

1. 선언부 일치해야 함(이름, 매개변수, 리턴타입)

2. 조상 접근제어자와 동일하거나 넓은 범위(조상 범위보다 작아지면 안됨)

3. 예외는 조상 메서드와 같거나 적어야함

 

오버라이딩 VS 오버로딩

- 오버라이딩 : 상속받은 메서드 내용 변경(상속과 관련)

- 오버로딩 : 이름이 같은 새로운 메서드 정의(상속과 관련 없음)

 

 

supser 키워드

super : 참조변수

- 조상 멤버와 자신 멤버를 구별하는 참조변수

* this 는 lv와 iv 구별하는 인스턴스 자신 가리키는 참조변수

 

super() : 생성자

- 조상의 생성자

- 모든 클래스의 생성자 첫 줄에는 생성자를 호출해야 한다.

안적으면 컴파일러가 super(); 을 자동 추가

=> 조상 기본생성자 없으면 에러남

=> 클래스에 생성자 추가하면 기본 생성자는 꼭! 작성해준다.

(지금 작성한 클래스가 나중에 조상 클래스가 될 수도 있으니)

 

 

 

📌 final 키워드

- final : 마지막의, 변경될 수 없는

- 클래스, 메서드, 멤버변수, 지역변수에 사용 가능

- 클래스 : 조상이 될 수 없음(자식 클래스 가질 수 없다.)

  메서드 : 오버라이딩 불가

  멤버, 지역변수 : 상수 됨(더 이상의 변경이 없어서) 

 

 

 

📌 추상 클래스

추상클래스 (미완성 클래스)

- 추상메서드를 포함하고 있는 클래스

- 완성된 설계도가 아니기 때문에 인스턴스 생성 불가

 

추상메서드 (미완성 메서드)

- 선언부만 있고 구현부가 없는 메서드

- 꼭 필요하지만 자손마다 다르게 구현되는 경우 사용

- 필수 기능을 자손에게 구현 강제시키는 의미가 있음

 

추상 클래스의 장점

- 코드 중복 제거

- 설계도 쉽게 작성

- 관리(변경)가 용이




'스터디 > 2209_자바의정석' 카테고리의 다른 글

8주차 과제 : 인터페이스  (0) 2022.10.11
7주차 과제 : 패키지  (0) 2022.10.06
5주차 과제 : 클래스  (0) 2022.09.26
4주차 과제 : 제어문  (0) 2022.09.18
3주차 과제 : 연산자  (0) 2022.09.18

댓글