일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 프로그래머스
- mysql
- CCAAdministrator
- programmers
- 클라우드컴퓨팅
- hadoop
- 하둡
- 쉘스크립트
- MFA
- CCA131
- 빅데이터실무자격증
- sql자격증
- RDBMS
- 파이썬
- 클라우드자격증
- 빅데이터
- 리눅스
- AWS자격증
- IAM
- 코딩테스트
- AWSCloudPractitioner
- SQLD
- hive
- EC2
- Multi Factor Authentication
- 클라우데라자격증
- 데이터베이스
- SQL
- Identity and access management
- CLF-01
- Today
- Total
Sherry IT Blog
[JAVA] 오버로딩(Overloading)과 오버라이딩(Overriding) 본문
얼마전 지인이 면접에서 오버로딩과 오버라이딩 질문을 받았다고 한다.
오랜만에 들어보는 오버로딩 오버라이딩....
C언어 들을때인가 방학때 공부했었던 기억이 나는데 이젠 가물가물
의미는 알지만 헷갈리기도하고, 기초다지는게 부끄러운건 아니니깐 개념을 잡고가고자 한번 더 알고가기.
일단. 오버로딩과 오버라이딩의 개념을 잡고가기
오버로딩(Overloading) 이란?
같은이름의 메소드를 여러개 가지면서, 매개변수 타입과 개수를 다르게 기술하는것
즉, 예를 들면
오버라이딩을 같은 클래스내에서 같은 이름의 메소드(함수)를 사용하는 것이리고 생각할 수 있다.
하지만 위에처럼 한 클래스안에 같은 이름의 메소드를 사용하면 왼쪽의 빨간점처럼 Duplicate method 라는 경고문구가 나온다.
그래서 오버로딩은 같은 이름의 메소드를 사용하되 매개변수 타입이 달라야하고 / 매개변수 개수가 달라야한다.
둘중에 하나만 만족해도 됨.
1. 매개변수 타입이 다를 때
한 클래스(outPut) 안에서 같은 메소드(testA) 이름으로 메개변수 타입을 다르게 주었다.(String,int 형)
2. 매개변수 개수가 다를 때
한 클래스(outPut) 안에서 같은 메소드(testA) 이름으로 메개변수 타입을 다르게 주고.(String,int 형)
매개변수 개수도 다르게 했다. (매개변수 타입 같게해줘도 됨)
음 아마..개인적인 생각으로는 오버로딩이 없었다면 유지보수할때 소스가 매우 더러워질듯..
기능이 추가될때 메소드를 추가하는게 더 효율적일것 같다. 상황에따라 다르겠지만!
2. 오버라이딩(Overriding) 이란?
상위 클래스(부모)가 가지고 있는 메소드를 상속받아 하위 클래스(자식)가 재정의해서 사용하는 것
즉, 부모가 쓰고있는 함수를 자식들이 상속받는 개념이라고 생각하면되겠다.
부모클래스에서 상속받은 변수와 메소드는 자식클래스에서도 동일하게 사용가능하다.!! 이건 코딩하면서 제일 자주보는 개념!
즉, 부모클래스에서 쓰는 메소드와 변수를 자식클래스에서도 사용함으로 개발적인 효율성을 높일 수 있겠다.
짧은 지식으로 쓰려니 기본은 여기까지마무리하고..
참고로 Static 메소드는 오버라이딩을 허용하지 않는다!! 그이유는 아래를 참고.. 캡쳐 포스팅 귀찮..
참고 URL : http://itpangpang.xyz/105
'JAVA' 카테고리의 다른 글
[Eclipse] 자바파일 한글깨짐 현상 (0) | 2017.02.24 |
---|---|
[JSP] <%@taglib %> taglib 디렉티브 (0) | 2017.02.07 |
[Eclipse]콘솔창에서 iBatis 로그보이게 설정하기(log4j설정) (0) | 2017.01.20 |
[JSP]JSTL(JSP Standard Tag Library 익히기 (0) | 2017.01.20 |
[Eclipse] Tomcat구동시 Class not found 오류 해결방법 (0) | 2017.01.17 |