상속 개념
클래스 상속
public class 자식클래스 extends 부모클래스 {
}
- extends 키워드 사용: 부모 클래스를 확장한다는 개념
- 자바는 다중 상속을 허용하지 않음 (C++에서는 허용)
- 자바의 최상위 클래스는 java.lang.Object 클래스
메소드 재정의 (메소드 오버라이딩)
ChildExample에 있는 child.method2(10); 코드에서는 자식 클래스의 메소드만 호출된다.
Overloading과 Overriding의 차이
오버로딩 | 오버라이딩 | |
사전적 의미 | - 짐을 많이 싣다 - 지나치게 부담시키다 |
- (부모의 메소드보다) 자식 메소드를 우선하다 |
객체지향 언어 | - 하나의 클래스 내부에서 동일한 이름의 함수 사용 - 매개변수의 타입 및 개수가 다름 - 리턴 타입 상관없음 |
- 상속관계 - 부모클래스의 메소드를 자식 클래서에서 재정의해서 사용 - 매개변수 타입과 개수가 같음 - 리턴 타입 동일 |
code | Public class Book { String title; String author; public Book(String t) { title = t; } public Book(String t, String a) { title = t; author = a; } } |
class Shape { void draw(int i, int j) { System.out.println("Shape draw"); } } class Square extends Shape { void draw(int i, int j) { System.out.println("Square draw"); } } |
메소드 오버라이딩에 관한 예시는 다음 링크(https://hecoej.tistory.com/17) 에서 볼 수 있다.
타입 변환
자동 타입 변환 (upcasting)
: 자동으로 타입 변환이 일어나는 것
- 자식 클래스 객체를 부모 클래스 타입으로 자동 변환
- 자식 클래스는 부모 클래스의 속성과 기능을 상속받음
-> 부모 클래스와 동일하게 취급될 수 있음
사용 이유: 자식 클래스에 특성화된 기능을 사용하는 것이 아니라 부모 클래스의 일반적인 기능을 이용할 경우 사용
강제 타입 변환 (downcasting)
- 부모 클래스 객체를 자식 클래스 타입으로 변환 (개발자가 명시적으로 타입 변환)
'JAVA' 카테고리의 다른 글
[JAVA] 3주차(1) | Java.base모듈, Wrapper (0) | 2023.05.17 |
---|---|
[JAVA] 2주차 | 패키지(package), getter와 setter (0) | 2023.05.10 |
[JAVA] 메소드 재정의 | toString, compareTo (0) | 2023.05.04 |
[JAVA][혼공학습단 9기] 2주차 (0) | 2023.01.09 |
[JAVA][혼공학습단 9기] 1주차 (1) | 2023.01.02 |