티스토리 뷰
오버로딩(Overloading) 오버라이딩(Overriding)
이름이 비슷해 사람들이 많이 헷갈려한다. 정확하게 말해 오버로딩과 오버라이은 다른 개념이다.
1. 오버로딩(Overloading)
오버로딩은 한 클래스 내에서 이름이 같은 메서드를 선언할 수 있다. 하지만 아래와 같은 조건이 성립해야 한다.
- 매개변수의 타입과 개수는 달라야 한다.(반환형은 무조건 같아야 한다.)
- 매개변수는 같으나, 반환형이 다를 경우 오버로딩이 되지 않는다.
public class Test{
public static void main(String[] args) {
Hello h = new Hello();
System.out.println(h.method());
System.out.println(h.method("bbigbros"));
System.out.println(h.method("java", 100));
}
}
class Hello {
public String method() {
return "hello world";
}
public String method(String name) {
return name + " hello world!";
}
public String method(String name, int age) {
return name + ", " + age + "Age..";
}
}
2. 오버라이딩(Overrding)
오버로딩(Overloading)과 달리 상속과 관련이 있다. 부모 클래스로부터 물려 받으며 자신에 맞게 수정한다.
- 메서드의 이름이 같아야 한다.
- 매개변수가 같아야 한다.
- 리턴 타입이 같아야 한다.
- 이런 것을 다형성이라고 부른다.
public class Test{
public static void main(String[] args) {
Dog d = new Dog();
Cat c = new Cat();
System.out.println(d.Info());
System.out.println(c.Info());
}
}
class Animal {
public String Info() {
return "나는 동물이야";
}
}
class Dog extends Animal {
// 강아지 클래스 오버라이딩 적용
public String Info() {
return "나는 강아지야";
}
}
class Cat extends Animal {
// 고양이 클래스 오버라이딩 적용
public String Info() {
return "나는 고양이야";
}
}
'JAVA' 카테고리의 다른 글
[자바(JAVA)] 인터페이스(Interface) (0) | 2017.07.20 |
---|---|
[자바(JAVA)] 상속(Inheritance)의 개념 (0) | 2017.07.09 |
[자바(JAVA)] Properties 클래스 (0) | 2017.06.28 |
[자바(JAVA)] 생성자란 무엇인가? (0) | 2017.06.27 |
변수(Variable) (0) | 2014.11.19 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 래퍼클래스
- 오버로딩
- Model2
- inheritance
- HashMap
- java
- constructor
- 자바
- 부모클래스
- MVC아키텍처
- overloading
- overriding
- mvc 패턴
- Unboxing
- extends
- MVC
- wrapper
- Properties
- autoboxing
- 상속
- keySet()
- 오토박싱
- HttpMethod
- 오버라이딩
- Boxing
- parent
- override
- 생성자
- Post
- 자식클래스
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함