[TIL] 9일차 다형성 오버라이딩, 오버로딩

김지수·2024년 5월 1일

TIL

목록 보기
9/53

다형성

다형성은 객체 지향 프로그래밍(OOP)의 중요한 개념 중 하나이다. 이는 여러 가지 형태를 가질 수 있는 능력을 의미한다. 자바에서는 다형성을 구현하기 위해 두 가지 주요한 방법을 사용한다.
메소드 오버라이딩과 오버로딩이 있다.

오버라이딩

서브클래스에서 슈퍼클래스의 메소드를 다시 정의하는 것을 의미한다. 이것은 동일한 메소드 시그니처를 가진 서브클래스의 메소드가 슈퍼클래스의 메소드를 대체한다. 이를 통해 다형성을 구현 할 수 있다.

class Animal {
    void sound() {
        System.out.println("Animal makes a sound");
    }
}

class Dog extends Animal {
    void sound() {
        System.out.println("Dog barks");
    }
}

class Cat extends Animal {
    void sound() {
        System.out.println("Cat meows");
    }
}

오버로딩

같은 메소드명을 가진 메소드가 서로 다른 매개변수 목록을 가질 수 있도록 하는 것이다.
컴파일러가 어떤 메소드를 호출할지를 결정하는데 사용한다.

class Calculator {
    int add(int x, int y) {
        return x + y;
    }

    double add(double x, double y) {
        return x + y;
    }
    double add(int x, int y, int z) {
        return x + y + z;
    }
}

오늘의 회고

다형성을 활용하여 객체 생성하면서 코드를 설계하는게 아직은 어렵게 느껴진다.
계속 설계하면서 사용해보면서 연습을 좀 많이 해봐야 할 것 같다.

profile
서툴고 부족한 점이 많지만, 배우고 발전하며 성장하기 위해 노력하겠습니다.

0개의 댓글