오버로딩 vs 오버라이딩

호떡·2022년 7월 25일
0

오버로딩(overloading)


✍️ 클래스_메소드 오버로딩, 생성자 오버로딩


  1. 오버로딩(overloading)이란?
    클래스 내에 같은 이름의 메소드를 여러 개 선언하는 것을 오버로딩이라고 한다. 하나의 메소드 이름으로 여러 기능을 담는다 하여 붙여진 이름이라 생각할 수 있다.

  2. 메소드 오버로딩의 조건
    메소드 이름은 동일하게 해야 한다.
    매개 변수의 타입, 개수, 순서 중 하나가 달라야 한다.

	public  class Test {
    	// 오버로딩 ⭕
        public void eat() {
            System.out.println("먹는다.");
        }
      
        public void eat(String food) {
          	System.out.println(food+"을/를 먹는다");
		}
        
        public void eat(String food, int time) {
			System.out.println(time+"시간동안 "+food+"먹는다.");
		}
	
		public void eat(int time, String food) {
			System.out.println(time+"시간동안 "+food+"먹는다.");
		}
	
        
        // 오버로딩❌
        public boolean eat(String food) {
			//리턴타입이 다른 것은 오버로딩이 아니다.
		}
        
		public void eat(String name) {
			//매개변수의 이름만 다른 것은 오버로딩이 아니다.
            System.out.println(name+"이/가 먹는다");
        }
    }

오버라이딩(Override)


✍️ 상속_메소드 재정의


  1. 메소드 오버라이딩이란?
    상속된 메소드의 내용이 자식 클래스에 맞지 않을 경우, 자식 클래스에서 동일한 메소드를 재정의하는 것을 말한다.

  2. 오버라이딩 시 규칙

  • 부모의 메소드와 동일한 리턴 타입, 메소드 이름, 매개변수 리스트를 가져야 한다.
  • 접근 제한을 더 강하게 오버라이딩 할 수 없다.

0개의 댓글