///////
Search
😁

오버라이딩, 오버로딩

박수진_0926

오버라이딩

메소드 오버라이딩이란?
상속 관계에서 자식 클래스가 부모 클래스의 메소드를 자신의 필요에 맞추어 재정의
함수 바디만 달리함
package java_0923; //부모클래스 class Shape{ public void draw() { System.out.println("도형을 그립니다. "); } } //Rectangle 클래스 class Rectangle extends Shape{ @Override public void draw() { System.out.println("사각형을 그립니다."); } } //Circle 클래스 class Circle extends Shape{ @Override public void draw() { System.out.println("원을 그립니다."); } } //Triangle 클래스 class Triangle extends Shape{ @Override public void draw() { System.out.println("삼각형을 그립니다."); } } public class OverTest { public static void main(String[] args) { Shape shape = new Shape(); shape.draw(); Rectangle rect = new Rectangle(); rect.draw(); } }
Java
복사
위와같이 Override 애너테이션을 붙어주면 자바측에서 부모 메서드를 먼저 찾으려고함!

성수연_0926

오버로딩

기존에 없는 새로운 메서드를 정의하는 것 (원래 한 클래스 내에 같은 이름의 메소드를 둘 이상 가질 수 없지만 매개변수의 개수나 타입을 다르게 하면 하나의 이름으로 메소드를 작성할 수 있게 하는 것)

오버로딩을 사용하는 이유

하나의 메소드 이름안에 여러개의 기능들을 넣기 위해

오버로딩이 성립하기 위한 조건

메서드 이름이 동일해야함
매개변수의 개수 또는 타입이 달라야
반환 타입은 영향 없다
오버로딩과 오버라이딩 구별하기
class Parent { void parentMethod() {} } class Child { void parentMethod() {} // 오버라이딩 void parentMethod() {} // 오버로딩 void childMethod() {} void childMethod(int i) {} // 오버로딩 }
JavaScript
복사
오버라이딩 vs 오버로딩 (면접 단골) 오버라이딩은 상속관계에서 바디만 바꿀때, 오버로딩은 파라미터 개수와 타입을 다르게하여 적용할 수 있도록 하는것 예) system.out.println() → 다양한 타입들을 적용할 수 있도록 고슬링아저씨가 오버로딩해놓은것