본문 바로가기
JAVA/★객체지향

overloading

by SEOKIHOUSE 2023. 3. 10.

1)메소드 이름이 같아도 매개변수 숫자, 데이터 타입이 다르면 다른 메소드로 인식함

c1.setOprands(10,20);

c1.sum(); -30

c1.setOprands(10,20,30);

c1.sum(); - 60

 


2)오버로딩 규칙

메소드 이름 같아야하고 매개변수 수는 달라야하지만 리턴값은 같아야한다 (파라메터가 같을 경우)

만약 다르다면 리턴값은 달라도됨

ex) void a () -> a()

int a (int a) --> a(1)

 

매개변수 이름다르다고 해서 오버로딩x (int arg1, int param1) ->메소드 내부에서 사용되는거라 호출에서는 의미가 없음 --> 어떤 메소드 사용하려는거야? ㅡㅡ ---> 에러

데이터 타입이 다르면 가능한데 변수이름으론.. 안된당

void A (int arg1){System.out.println("void A (int arg1)");}

voidA (intparam1){System.out.println("void A (int arg1)");}

오버라이딩vs오버로딩

오버/라이딩 - 부모클레스에 있는 메소드의 이름과 매개변수의 형식 리턴타입이 동일한(서명이 같은)걸 자식클래스에서 정의-> 다시 새롭게 변경

오버/로딩 - 같은 이름 다른 메소드에 의해 여러개의 같은 이름 다른 메소드를 정의