[Java] 상속, 클래스간의 관계, final, Object

CountryGirl·2023년 6월 3일
0

Java

목록 보기
10/18
post-thumbnail

📌 상속

부모클래스가 자식클래스에게 메서드나 필드를 물려주는 행위이다.

  • 공통적인 코드를 관리하여 코드의 추가와 변경이 쉬워진다.
  • 코드의 중복이 제거되고 재사용성이 크게 증가하여 생산성과 유지보수성에 매우 유리하다.

확장의 개념으로 이해를 해야한다.
절대로 자식 클래스라고 부모클래스보다 작다고 생각하면 절대 안된다.

  1. 부모 클래스에 새로운 필드와 메서드가 추가되면 자식 클래스는 이를 상속받아 사용할 수 있다.
  2. 자식 클래스에 새로운 필드와 메서드가 추가되어도 부모 클래슨느 어떠한 영향도 받지 않는다.
  3. 자식 클래스의 멤버 개수는 부모 클래스보다 항상 같거나 많다.

클래스간의 관계가 복잡해지는 문제가 생기지 않도록 Java는 다중상속을 허용하지 않는다 !!


📌 클래스간의 관계

클래스간의 관계를 분석하여 관계설정을 해줄 수 있다.

  • 상속관계: is ~ a (~은 ~이다.)
  • 포함관계: has ~ a (~은 ~을 가지고 있다.)

(예시)

  • 고래는 포유류다 (O) 👉 상속관계
  • 고래는 포유류를 가지고있다 (X)

(예시)

  • 자동차는 타이어이다 (X)
  • 자동차는 타이어를 가지고 있다 (O) 👉 포함관계

클래스간의 상속은 extends 키워드를 사용하여 정의한다.


📌 final

final 이라는 키워드가 붙으면 변경할 수 없다 !!
final class 로 선언을 해놓으면 자식 class 로 내려줬을 때도 변경할 수 없어야한다

클래스에 final 키워드를 지정하여 선언하면 최종적인 클래스가 된다.

Q. 이게 무슨 말이냐?

A. 상속이라는 것은 기본적으로 Overriding 을 하기 위해 쓰는 것인데 final 로 선언할 경우 Overriding 을 하지 못하므로 최종적인 클래스, 즉 더 이상 상속할 수 없는 클래스는 된다.


📌 Object

Object 클래스는 Java 내 모든 클래스들의 최상위 부모 클래스이다.
모든 클래스는 Object 의 메서드를 사용할 수 있다.
부모 클래스가 없는 자식 클래스는 컴파일러에 의해 자동적으로 Object 클래스를 상속받는다.

Object 의 메서드

  • Object clone() : 해당 객체의 복제본을 생성하여 반환한다.
  • boolean equals(Object object) : 해당 객체와 전달받은 객체가 같은지 여부를 반환한다. (True / False)
  • Class getClass() : 해당 객체의 클래스 타입을 반환한다.
  • int HashCode() : 자바에서 객체를 식별하는 정수값인 해시 코드를 반환한다.
  • String toString() : 해당 객체의 정보를 문자열로 반환한다.
  • etc...
profile
💻🌾시골소녀의 엉망징창 개발 성장일지🌾💻 (2023.05.23 ~)

0개의 댓글

관련 채용 정보