IT Diary/# JAVA

[ JAVA ] 다형성과 추상화

셜록호움즈 2021. 8. 3. 00:46
728x90
반응형

 추상화

추상화라는것은, 어떤 실체로부터 공통적인 부분이나 관심 있는 특성들만 한곳에 모은것을 의미한다. 예를들어서, 지구를 본따 만든 지구본을 예로 들 수 있다. 지구본은 실제 지구로 부터 관심 있는 특성들(대륙의 위치, 위도,경도)만 뽑아서 만든것이다. 지구를 추상화해서 지구본을 만들었다.

객체지향에서의 추상화는 어떤 하위클래스들에 존재하는 공통적인 메소드를 인터페이스로 정의하는것을 예로 들 수 있다.

 

  • 자료의 추상화 = 객체지향 관점에서 클래스를 정의하는 것
  • 추상클래스 = 여러 클래스간 비슷한 필드와 메서드를 공통적으로 추출해 만들어진 클래스
  • 인터페이스 = 동일한 목적 하에 동일한 기능을 수행하게끔 강제하는 것

인터페이스 vs 추상화클래스

 

 다형성

다형성은, 같은 모양의 함수가 상황에 따라 다르게 동작 하는것을 의미한다.

  • 오버라이딩(Overriding): 부모클래스의 메서드와 같은 이름, 매개변수를 재정의 하는 것
  • 오버로딩(Overloading): 같은 이름의 함수를 여러개 정의하고, 매개변수의 타입과 개수를 다르게 하여 매개 변수에 따라 다르게 호출할 수 있게 하는 것

부모클레스에서 물려받은 가상 함수를 자식 클래스 내에서 오버라이딩 되어 사용되는 것

- 간단히 예를 들자면

  군대에서 나는 K2 소총을 잡았고 동기는 K1 소총을 잡았다. 사격 훈련이 있을 때 중대장이 '준비된 사수부터 발사!'라고 외치면

  나와 내친구는 명령을 받고 앞의 사로를 향해 총을 쏜다. 이때 중대장은 추상적 객체를 상속받은 모든 객체들에게 명령을 내린것이고

  그 병사가 총이 뭐든간에 그냥 발사를 하라는 명령을 한것이다.

  즉, 다형성이 없다면 K1 소총을 든 병사 발사, K2 소총을 든 병사 발사 라며 명령을 하나하나 내려야 할 것이다

 

 


출처 :https://dis.dankook.ac.kr/lectures/java18-2/2018/09/18/abstract-class-vs-interface/
출처: https://88240.tistory.com/228 [shaking blog]

출처: https://simsimjae.tistory.com/293 [104%]

출처: https://sdesigner.tistory.com/90

 

[Java] 추상화, 상속, 추상클래스와 인터페이스 비교, 다형성

본 포스팅은 jisikTank 스터디에 참여하며 정리한 문서입니다. jisikTank Skill 지식 Git Repository 객체지향과 추상화(상속, 추상클래스, 인터페이스, 다형성) 추상화(Abstraction) 객체 지향 프로그래밍 키워

sdesigner.tistory.com

 

728x90
반응형

'IT Diary > # JAVA' 카테고리의 다른 글

java stream  (0) 2021.08.11
Ioc 와 di  (0) 2021.08.10
[ JAVA ] 캡슐화란?  (0) 2021.07.11
[ JAVA ] try catch 문  (0) 2021.07.09
[ JAVA ] this 와 this()  (0) 2021.03.14