inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

CS 지식의 정석 | 디자인패턴 네트워크 운영체제 데이터베이스 자료구조

Q. 오버로딩과 오버라이딩은 무엇인가요? ★★★

큰돌님~! 오버로딩 질문있습니다!

294

dch3030

작성한 질문수 6

-1

오버로딩 설명 해주실때

class Person {

void pay(String a, int b) {

System.out.println(a + "가" + b + "원만큼 계산합니다. ");

}

void pay(int a, String b) {

System.out.println(b + "가" + a + "원만큼 계산합니다. ");

}

}

public class MyClass {

public static void main(String args[]) {

Person p = new Person();

p.pay("영주",100000);

p.pay(100000,"영주");

}

}
이렇게 말씀하셨는데! 오버로딩을 하면서 pay함수를 2번이나 썼는데 그래도 코드가 깔끔하다라고 정의를 하나요?
좋은 코드는 중복되는 코드가 없어야된다 이렇게 들었었는데!

면접 운영체제 기술면접

답변 1

0

큰돌

안녕하세요 3030님 ㅎㅎ

저 함수는 똑같은 함수가 2개가 있는게 아닙니다.

이렇게 말씀하셨는데! 오버로딩을 하면서 pay함수를 2번이나 썼는데 그래도 코드가 깔끔하다라고 정의를 하나요?

>> pay라는 함수 2개가 아니라 다른 pay함수 한개씩이라고 보시면 됩니다.

void pay(String a, int b) {

System.out.println(a + "가" + b + "원만큼 계산합니다. ");

}

void pay(int a, String b) {

System.out.println(b + "가" + a + "원만큼 계산합니다. ");

}

두개의 함수, 매개변수의 순서가 다른 함수라고 보시면 되며 그걸 의미하는 것이 바로 오버로딩입니다.

 

그렇다면 이 오버로딩으로 왜 코드가 깔끔해질까요?

이렇게 생각하시면 됩니다.

예를 들어 pay_str_int라는 함수와 pay_int_str 이라는 함수 2개를 만들어서 pay() 함수를 하는데 하나는 매개변수가 str부터, 하나는 int부터하는 것을 구별하기 보다는 저렇게 오버로딩 해서 pay라는 네이밍으로 여러개를 구현하는게 더 깔끔해지는 것이다라고 보시면 됩니다.

 

감사합니다.

0

dch3030

아하 좋은 답변 감사합니다~!!

REST API (Self-descriptive messages)

0

28

1

시스템 엔지니어 관련 질문입니다.

0

53

2

오버라이딩 관련하여 질문드립니다.

0

62

2

교착상태의 4가지 필요조건이 필요충분조건이 아닌 이유

0

91

1

렌더 트리, 렌더 레이어와 그래픽 레이어

0

57

2

로컬스토리지, 세션스토리지, 쿠키의 공통점

0

68

1

IPv4가 IPv6보다 빠른 경우

0

103

2

UDP가 전송계층의 역할을 못하는 건 아닌지

0

59

1

Path MTU 발견하였음에도 패킷 분할이 필요한 이유?

0

65

2

교재의 LFU 알고리즘에서 6번이 왜 히트인가요?

0

64

2

페이지 교체 알고리즘? 프레임 교체 알고리즘?

0

83

2

Static 키워드가 메모리에 올라가는 시점

0

78

2

헤더 압축부분 질문드립니다

0

73

2

공유 캐시 관련 질문 드립니다.

0

56

2

컨텍스트는 context와 contextual information으로 나눠진다는게 무슨뜻인가요?

0

201

1

회선과 대역폭의 관계

0

63

2

44강 질문

0

95

2

버스 토폴로지 질문 있씁니다

0

55

1

자바스크립트, xml 문법 관련

0

67

2

전략패턴과 의존성주입 질문

0

69

2

Model이 비즈니스 로직을 담당하나요?

0

108

2

CS 공부 하는 법

0

181

2

큰돌님 블로그에 개념정리해서 올려도될까요!

0

137

2

FIN 세그먼트 질문

0

72

2