[JAVA] 오버로딩(overloading) vs 오버라이딩(overriding)
JAVA 오버로딩 vs 오버라이딩 오버로딩(overloading) : 기존에 없는 새로운 메서드를 정의하는것(new) 오버라이딩(overriding) : 재정의 또는 확장. 상속받은 메서드의 내용을 변경(재정의)하는 것(modify) 오버로딩(overloading) (생성자에서 주로 사용) 같은 메소드명으로 여러개의 기능을 만든다. 오버로딩 조건 1.메서드 이름이 같아야한다. 2.매개변수의 갯수 또는 타입이 달라야 한다. 3. 리턴형은 관계없다 오버라이딩(overriding) 상속받은 메서드의 내용을 변경(재정의)하는 것을 오버라이딩이라고 한다. 오버라이딩 조건 자손 클래스에서 오버라이딩하는 메서드는 조상 클래스의 메서드와 1. 반드시 상속관계여야 한다. 2. 이름이 같아야 한다.(메소드명이 동일) 3. 매개변수가 같아야 한다.(갯수와 순서, 데이터 타입) 4. 반환타입이 같아야 한다.(리턴형 동일) 5. 접근지정어는 확장, 축소할 수 없다. ( public > protected > default > private ) 오버라이딩은 부모클래스에 정의된 메서드를 상속받지않고 자식클래스에서 재정의하여 사용하는데 상황에 따라 부모클래스에 정의되어있는 메서드의 기본 동작은 그대로 사용하면서 부가적인 기능을 작성하고자 할 때 똑같은 코드를 작성하면 중복이 발생하므로 super.메서드명 으로 기본적으로 작성되어있던 기능을 상속받고 그 후에 추가적으로 변경하고자하는 기능을 추가, 수정 할 수 있다.