OOP의 4대 특성중에는 다형성(Polymorphism)은 같은 자료형이지만 다양한 변수나 메소드를 대입하여 다양한 결과를 얻어내는 능력을 말합니다.
오버라이딩(Overriding)
- 상위 클래스에서 선언된 메소드를 하위 클래스에서 재정의 해서 사용하는 방식입니다.
- 부모 클래스의 생성자를 자식 클래스에서 선언하는 것(super()) 도 오버라이딩입니다.
- 오버라이딩의 충족 조건(1. 메소드 이름, 2. 메소드 매개 변수의 숫자와 데이터 타입&순서, 3. 메소드 리턴 타입)
오버로딩(Overloading)
- 메소드명은 같지만 리턴 타입이나 매개변수에 다르게 해서 여러가지 메소드를 선언 하는 방식입니다.
- 하나의 메소드 이름으로 여러 기능을 구현 할 수 있습니다.
- 매개 변수가 다르거나 리턴 타입이 달라야 합니다.
- 하지만 리턴 타입이 달라도 매개 변수가 같으면 안됩니다.
오버라이딩과 오버로딩의 사용법
- 오버라이딩을 사용 할 때 하위 클래스의 메소드에 @Override어노테이션을 사용하여 명시적으로 사용 할 수 있습니다.
package java_study;
public class Polymorphism {
public static void main(String[] args) {
Child_poly cp = new Child_poly();
cp.overridingHello();
cp.overloadingMethod();
cp.overloadingMethod("hey");
cp.overloadingMethod("yolo", 100);
}
}
class Parent_poly {
public void overridingHello() {
System.out.println("Hello from Parent");
}
}
class Child_poly extends Parent_poly {
// @Override
public void overridingHello() {
System.out.println("Hello from Child");
}
public void overloadingMethod() {
System.out.println("overloading without paremter");
}
public void overloadingMethod(String str) {
System.out.println("str : " + str);
}
public void overloadingMethod(String str, Integer i) {
System.out.println("str : " + str + " / Integer : " + i);
}
public Integer overloadingMethod(Integer i) {
return i;
}
}
'Programming > JAVA' 카테고리의 다른 글
[자바] 클래스, 인스턴스 그리고 객체 (0) | 2020.08.31 |
---|---|
[자바] 상속과 생성자 (0) | 2020.08.28 |
[자바] 자바 open jdk 설치 및 자바 환경 변수 설정 (0) | 2019.03.09 |
[자바]-1+3-5+7-9...1-3+5-7+9-11... 합 구하기 (0) | 2018.07.27 |
[자바] 1부터 100까지 짝수/홀수 합. i부터 n까지 짝수/홀수 합 (0) | 2018.07.27 |