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오버로딩
오버/라이딩 - 부모클레스에 있는 메소드의 이름과 매개변수의 형식 리턴타입이 동일한(서명이 같은)걸 자식클래스에서 정의-> 다시 새롭게 변경
오버/로딩 - 같은 이름 다른 메소드에 의해 여러개의 같은 이름 다른 메소드를 정의
'JAVA > ★객체지향' 카테고리의 다른 글
패키지/ import/손컴파일 <-거의 안하긴함 개발도구 쓰니깐 /개념 (0) | 2023.03.13 |
---|---|
클래스 패스/ 환경변수 개념 (0) | 2023.03.13 |
overriding (0) | 2023.03.10 |
상속과 생성자/ super (0) | 2023.03.10 |
상속 - extends( 부모->자식//->자식) (0) | 2023.03.10 |