잉?

[Java] 오버로딩(Overloading)과 오버라이딩(Overriding)의 차이점 본문

자바(Java)

[Java] 오버로딩(Overloading)과 오버라이딩(Overriding)의 차이점

Jye_647 2023. 6. 29. 21:26

오버로딩(Overloading) ?

- 한 클래스 내부에서 메서드를 확장하기 위한 개념

- 메서드 이름이 일치하고, 매개변수의 개수 또는 타입이 달라야 한다. 

public class prac {
    public static void main(String[] args) {
        OverloadingPrac op = new OverloadingPrac();

        System.out.println(op.eat("사과"));
        op.eat("사과", "바나나");
    }
}

class OverloadingPrac{
    public String eat(String a){
        return a + "를(을) 먹다.";
    }
    
    public void eat(String a, String b){
        System.out.println(a + "와(과) " + b + "를(을) 먹다.");
    }
}

오버로딩 사용 이유

1. 같은 기능의 메서드를 하나의 이름으로 사용할 수 있다.

2. 메서드의 이름을 절약할 수 있다.


오버라이딩(Overriding) ?

- 상위(부모) 클래스에서 정의한 메서드를 상속받은 하위(자식) 클래스에서 확장하는 개념

- 메서드의 이름, 매개변수, 리턴 값이 모두 같아야 한다.

public class prac {
    public static void main(String[] args) {
        Animal animal = new Animal();
        Tiger tiger = new Tiger();
        Rabbit rabbit = new Rabbit();

        animal.cry();
        tiger.cry();
        rabbit.cry();
    }
}

class Animal{
     protected void cry(){
        System.out.println("울다");
    }
}

class Tiger extends Animal{
    public void cry(){
        System.out.println("어흥");
    }
}

class Rabbit extends Animal{
    protected void cry(){
        System.out.println("끽끽");
    }
}

오버라이딩의 접근 제어자

자식 클래스의 접근 제어자는 부모 클래스 보다 넓은 범위의 접근제어자만 설정 가능하다.

 


 

[Java]오버로딩 & 오버라이딩(Overloading & Overriding)

오버로딩(Overloading) 오버로딩(Overloading)이라는 뜻은 사전적으로 '과적하다.'라는 뜻이다. C언어에서는 함수명이 고유하게 존재해야 한다. 즉 하나의 함수가 하나의 기능만을 구현해야 한다는 것

hyoje420.tistory.com

 

Comments