"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."

오늘이군

객체지향 4대특성 - 다형성 본문

삶../프로그래밍

객체지향 4대특성 - 다형성

오늘이군 2017. 5. 16. 17:52
반응형

※ 추천 글

https://www.youtube.com/watch?v=JDQke4tIUPE&t=2262s

http://mckdh.net/549


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

"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."
Comments