본문 바로가기

Backend/JAVA

다형성(Polymorphism)

다형성(Polymorphism)

다형성의 의미

자바의 OOP개념 (다형성, 캡슐화, 추상화, 상속) 중 하나

슈퍼클래스의 동일한 메소드라도 구현체에 따라 내부동작을 변하게 하는 것

다형성을 가장 잘 보여주는 개념으로는 오버로딩과 오버라이딩이 있다.

Overloading

오버로딩은 하나의 클래스에서 같은 이름의 메소드를 가질 수 있게 한다. (인자는 달라야 함)

class test{
    public void a(int num){
        System.out.println("정수입니다.");
    }
        public void a(double num){
        System.out.println("실수입니다.");
    }
    public void a(String param){
        System.out.println("문자입니다.");
    }
}
public class Polymorphis {
    public static void main(String[] args) {
        test a = new test();

        test.a(1);;
                test.a(1.0);;
        test.a("Hello");
    }
}

Overriding

오버라이딩은 부모 클래스를 상속받은 자식 클래스에서 부모 클래스를 새롭게 정의할 수 있다.

class Parents{ 
    public void info(){
        System.out.println("부모 클래스 입니다.");
    }

}

class Child extends Parents{
    public void info() {
        super.info();
        System.out.println("자식 클래스 입니다.");
    }
}

public class OverTest {
    public static void main(String[] args) {

        Child son = new Child();
        son.info(); // 자식 클래스 입니다.

    }
}

다형성을 사용하는 이유

코드의 재사용성이 높아진다. → 유지보수가 쉬워진다.

ex) 슈퍼클래스 하나 정의해놓고 계속 가져다 사용할 수 있다.

참고 문헌

다형성 - Java

[Java] 다형성 (Polymorphism)