Leeyebin의 블로그
overloading vs overriding 본문
1)
Method overloading is used to increase the readability of the program.
Method overriding is used to provide the specific implementation of the method that is already provided by its super class.
2)
Method overloading is performed within class.
Method overriding occurs in two classes that have IS-A (inheritance) relationship.
3)
In case of method overloading, parameter must be different.
In case of method overriding, parameter must be same.
4)
Method overloading is the example of compile time polymorphism.
Method overriding is the example of run time polymorphism.
5)
In java, method overloading can't be performed by changing return type of the method only. Return type can be same or different in method overloading. But you must have to change the parameter.
Return type must be same or covariant in method overriding.
//Java Method Overloading examplen class OverloadingExample{ static int add(int a,int b){return a+b;} static int add(int a,int b,int c){return a+b+c;} }
//Java Method Overriding example class Animal{ void eat(){System.out.println("eating...");} } class Dog extends Animal{ void eat(){System.out.println("eating bread...");} }
구분 |
오버로딩 |
오버라이딩 |
메소드 이름 |
동일 |
동일 |
매개변수, 타입 |
다름 |
동일 |
리턴 타입 |
상관없음 |
동일 |
출처 : https://software.intel.com/en-us/forums/mobile-software-development/topic/563737
오버라이딩(Overrideing)
- 상속된 메서드의 내용이 하위 클래스에 맞지 않을 경우, 하위 클래스에서 동일한 메서드를 재정의 하는 것.
- 상위 클래스의 메서드는 숨겨지기 때문에 메서드 호출 시 하위 클래스의 메서드가 호출된다.
- 상위 클래스의 메서드와 동일한 시그니처를 가야한다.
- 접근 제한을 더 강하게 오버라이딩 할 수 없다.
- 새로운 예외를 throws할 수 없다.
오버로딩(Overloading)
- 클래스 내에 같은 이름의 메서드를 여러 개 선언하는 것.
- 오버로딩 된 메서드를 호출할 경우 JVM은 매개값의 타입을 보고 메서드를 선택
- 타입이 일치하지 않을 경우 타입 변환이 가능한지 검사
'프로그래밍 > 깜빡하는 것들' 카테고리의 다른 글
Call by Value vs Call by Reference (0) | 2017.05.16 |
---|---|
[JAVA]추상클래스 vs 인터페이스 (0) | 2017.04.13 |
java vs javascript (0) | 2017.02.12 |
Comments