오늘이군
객체지향 4대특성 - 다형성 본문
※ 추천 글
https://www.youtube.com/watch?v=JDQke4tIUPE&t=2262s
1. 다형성
가. overriding : 메소드 재정의 (상속과 긴밀한 관계가 있다.)
하위클래스가 상위 클래스의 기능을 재정의하고 코딩에서는 이를 신경쓰지 않고 호출 가능
public class 동물 {
public void showName() {
print("안녕 난 동물");
}
}
public class 펭귄 extends 동물 {
// 메소드 재정의
public void showName() {
print("어머 난 펭귄");
}
}
동물 pororo = new 펭귄();
pororo.showName();
결과는??
어머 난 펭귄
※ 펭귄에서 정의한 showName 이 동물의 showName 을 덮어 쓴다.
overriding 이 개발상 이점을 주는 것은
List<User> users = new ArrayList<User>(); 로 사용을 하다가
성능이나 기타 이유로 LinkedList 로 변경해줘야 하는 경우 선언하는 부분만 변경하면 되기 때문에 코드에 영향이 적어집니다.
나. overloading : 메소드 중복정의
하나의 메소드명으로 다양한 인자를 취하는 다수의 메소드 구현 가능
public class 펭귄 extends 동물 {
public void showName() {
print("어머 난 펭귄");
}
// 메소드 중복정의
public void showName(String 이름) {
printf("안녕 난 %s 라고해", 이름);
}
}
※ 컴파일러가 이름을 구분해주는 거라 객체지향과 별 상관없다.
디스패칭에 대한 얘기는 좀 더 공부한 뒤에..
'삶.. > 프로그래밍' 카테고리의 다른 글
객체지향설계 5원칙 - OCP (0) | 2017.05.16 |
---|---|
객체지향설계 5원칙 - SRP (0) | 2017.05.16 |
객체지향 4대특성 - 추상화 (0) | 2017.05.16 |
객체지향 4대특성 - 상속 (0) | 2017.05.16 |
객체지향 4대특성 - 캡슐화 (0) | 2017.05.16 |