Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- oracle
- 백준 알고리즘
- 배열 복사
- 백준 10951번 c
- 펭수 2020 달력
- 백준 10951번 java
- 이클립스 알고리즘 환경
- nodejs
- 백준 1000번
- 백준 1000번 java
- 오라클
- 백준 10950번
- 백준 10950번 c
- 백준 1000번 c
- 이클립스 알고리즘 세팅
- 포항 지진
- 펭수 달력
- RETURN ROW IF NO DATA FOUND
- 자바스크립트
- 백준 10951번
- 지진
- 백준 1000번 c++
- 티스토리 초대장 이벤트
- 2020 펭수 달력
- Eclipse Althrithm
- 백준 10950번 java
- 백준10950번 c++
- 백준 10951번 c++
- 티스토리 초대장
- JavaScript
Archives
- Today
- Total
스노우보드 참 좋아하는데 맨날 키보드 앞에만 있네
오버로딩 vs 오버라이딩 본문
오버로딩과 오버라이딩에 대해 알아보자
오버로딩(overloading)은 두 메서드가 같은 이름을 갖고 있으나 인자(매개변수)의 수나 자료형이 다른 경우를 지칭한다.
메서드 인자에 어떤 값이 쓰이느냐에 따라서 다른 메서드가 호출된다.
1 2 3 | public int funcA(Circle c){ ... } public int funcA(Square s){ ... } public int funcA(Square s1, Square s2){ ... } |
오버라이딩(overriding)은 상위 클래스의 메서드와 이름과 signature가 같은 함수를 하위 클래스에 재정의하는 것을 말한다.
메서드를 오버라이드 하면 자식클래스에서 정의한 메서드가 호출된다.
부모 클래스에서 정의한 메서드도 유효하다. (super 키워드를 이용하여 호출 가능)
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 32 33 34 35 36 37 38 39 40 41 42 43 | // printMe(), computeArea() 메서드를 가진 Shape 클래스 public abstract class Shape{ public void printMe() { System.out.println("I am a shape."); } public abstract double computeArea(); } // Shape를 상속받는 Circle 클래스 public class Circle extends Shape { public double rad = 5; // 메서드 재정의 public void printMe() { System.out.println("I am a circle."); } public double computeArea() { return rad * rad * 3.15; } } // Shape를 상속받는 Ambiguous 클래스 public class Ambiguous extends Shape { private double area = 10; public double computeArea() { return area; } } public class IntroductionOverriding { public static void main(String[] args){ Shape[] shapes = new Shape[2]; Circle circle = new Circle(); Ambiguous ambiguous = new Ambiguous(); shapes[0] = circle; shapes[1] = ambiguous; for(Shape s : shapes) { s.printMe(); System.out.println(s.computeArea()); } } } |
출력결과
I am a circle. 78.75 I am a shape. 10.0 |
'개발 > Java, SpringFramework' 카테고리의 다른 글
Java의 컬렉션 프레임워크(Collection Framework) (0) | 2018.05.22 |
---|---|
메서드 시그니처(Method signature) (0) | 2018.05.21 |
UTF-8 설정하기(부제 : 한글깨짐현상 해결) (0) | 2017.12.12 |
transactionaleventlistenerfactory not found 이슈 (0) | 2017.12.11 |
ERROR : Context initialization failed; Cannot resolve reference to bean 'sqlSessionFactory' while setting constructor argument (0) | 2017.12.06 |
Comments