이전에 배운 내용
[JAVA] 상속관계와 포함관계
이전에 배운 내용 [JAVA] 상속 개념 [JAVA] 상속 개념 이전에 배운 내용 [JAVA] package와 import [JAVA] package와 import 이전에 배운 내용 2023.10.19 - [내일 배움 캠프_Spring _3기/프로그래밍 기초 주차(2023.10.12~30)
dev-story93.tistory.com
단일상속과 다중상속
java는 다중상속을 허용하지 않는다
상속은 부모가 자식에게 물려주는 것이다.
우리 대한민국도 자식이 여러 부모를 가질 수 없듯이(완전 막장 드라마...ㄷㄷ)
java에서도 자식은 여러 부모를 가질 수 없어 다중상속을 허용하지 않는다.
이렇듯 java에서도 부모클래스가 여럿이 되어버리면 클래스 간의 관계가 복잡해지는 문제가 생긴다.
만약 자식클래스에서 상속받은 서로 다른 부모클래스들이 같은 이름의 멤버를 가지고 있다면 자식클래스는 누구의 멤버인지 구분할 수가 없다.
JAVA는 단일상속만 허용한다!
final 클래스, final 메서드
final키워드가 붙으면 변경할 수 없다.
final키워드를 선언한 부모클래스는 자식클래스에게 상속할 수 없다.
상속은 overriding이라는 개념과 같이 간다.
overriding 부모로부터 내려받은 메서드를 재정의해서 쓰는 기법
부모클래스의 final이 붙으면 상속이 불가하다 중요!
final 키워드를 클래스와 메서드에 선언하면 어떻게 될까요?
public final class Car {}
...
public class SportsCar extends Car{} // 오류가 발생합니다.
- 클래스에 final 키워드를 지정하여 선언하면 최종적인 클래스가 됨으로 더 이상 상속할 수 없는 클래스가 된다.
public class Car {
public final void horn() {
System.out.println("빵빵");
}
}
...
public class SportsCar extends Car{
public void horn() { // 오류가 발생합니다.
super.horn();
}
}
- 메서드에 final 키워드를 지정하여 선언하면 최종적인 메서드가 됨으로 더 이상 오버라이딩할 수 없는 메서드가 된다.
object
Object는 말 그대로 “객체”를 의미하는 단어이며 보통, Object 클래스를 의미
Object 클래스는 Java 내 모든 클래스들의 최상위 부모 클래스
모든 클래스는 Object의 메서드를 사용할 수 있습니다.
부모 클래스가 없는 자식 클래스는 컴파일러에 의해 자동으로 Object 클래스를 상속받게 됩니다.
Object 클래스의 메서드를 몇 가지 소개해 드리겠습니다.
- Object clone() : 해당 객체의 복제본을 생성하여 반환함.
- boolean equals(Object object) : 해당 객체와 전달받은 객체가 같은지 여부를 반환함.
- Class getClass() : 해당 객체의 클래스 타입을 반환함.
- int hashCode() : 자바에서 객체를 식별하는 정수값인 해시 코드를 반환함.
- String toString() : 해당 객체의 정보를 문자열로 반환함. & Object 클래스에서는 클래스이름 @해쉬코드값 리턴함.
- …
다음시간엔 오늘 잠깐 나온 overriding에 대해 알아보자!
'언어(language) > 자바(Java)' 카테고리의 다른 글
| [JAVA] 다형성과 instanceof (0) | 2023.10.20 |
|---|---|
| [JAVA] 오버라이딩(overriding)과 슈퍼(super) (2) | 2023.10.19 |
| [JAVA] 상속관계와 포함관계 (2) | 2023.10.19 |
| [JAVA] 상속 개념 (0) | 2023.10.19 |
| [JAVA] package와 import (2) | 2023.10.19 |