다형성을 배우기에 앞서 필요한 개념이 '오버로딩'과 '오버라이딩' 이다.
1) 부모 클래스의 메소드에 매개변수를 넣어 사용하면 '오버로딩'
2) 부모 클래스의 메소드의 실행 내용을 바꾸면 '오버라이딩'
1. 오버로딩 (Overloading) 이란?
- 의미 : 같은 이름의 메소드를 매개변수의 타입이나 개수에 따라 중복 정의하는 것
- 목적 : 매개변수에 따라 특정 메소드가 호출되도록 하는 것
여기서 신경 쓸 부분은 메인 클래스에서 자식 클래스의 객체 생성 후 오버로딩한 메소드의 매개변수에 값을 넣게 되면,
자식 클래스의 메소드에 만들어둔 매개변수로 값이 들어간다. (부모 클래스의 멤버 변수와는 상관이 없다)
2. 오버라이딩 (Overriding) 이란?
- 의미 : 부모 클래스에 있는 메소드를 자식 클래스에서 재정의하여 사용하는 것
- 목적 : 메소드의 이름 및 매개변수의 타입과 개수 등은 모두 동일하지만 내용을 바꿔서 사용하는 것
**추가 내용**
부모 클래스에서 만든 메소드와 이름이 같은 메소드를 자식 클래스에서 쓰게 되면
자식 클래스에서 재정의한 메소드가 호출된다.
이 때, 부모 클래스에서 만든 메소드를 호출 하기 위한 방법은 2가지가 있으며
1) 부모 클래스의 객체를 생성하여 메소드 호출
2) 자식 클래스에서 만든 메소드에 supur 사용
으로 사용할 수 있게 된다.
'IT 언어 > Java' 카테고리의 다른 글
[Java] 추상 메소드와 추상 클래스 (abstract) (0) | 2024.01.14 |
---|---|
[Java] 다형성 (형변환, 업캐스팅과 다운캐스팅) (2) | 2024.01.14 |
[Java] 상속 (extends) --*Q/A (0) | 2024.01.10 |
[Java] 내부 클래스 (인스턴스, 정적, 지역, 익명) (0) | 2023.12.19 |
[Java] Getter와 Setter (정보은닉, 캡슐화) (0) | 2023.12.18 |