본문 바로가기

JAVA

[JAVA] 1주차 | 클래스 상속, 메소드 상속, 오버라이딩, 타입변환

상속 개념

클래스 상속

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)

- 부모 클래스 객체를 자식 클래스 타입으로 변환 (개발자가 명시적으로 타입 변환)