Heestory

07.캡슐화/상속/다형성/추상화 본문

개발(~국비)/기술면접

07.캡슐화/상속/다형성/추상화

까만밀가루 2022. 10. 20. 08:50

https://hee-story6.tistory.com/74

 

기술면접 대비 : 객체 지향 프로그래밍

객체 지향 프로그래밍(Object Oriented Programming) : 컴퓨터 프로그래밍 패러다임 중 하나로써 , 프로그래밍에서 필요한 데이터를 추상화 시켜 상태와 행위를 가진 객체를 만들고 그 객체들 간의 유기

hee-story6.tistory.com


#.캡슐화

정보은닉, 비슷한 역할을 하는 속성과 메소드를 하나의 클래스로 모은것

캡슐 내부의 로직이나 변수들을 감추고 외부에는 기능(API)만을 제공

 

#.상속

클래스를 재사용 → 생산성이 높고 유지 보수가 좋다

상위 클래스를 하위 클래스에서 상속 받게 되면 상위 클래스의 멤버변수나 메소드를 그대로 물려받는다

 

#.다형성

같은 모양의 함수가 상황에 따라 다르게 동작하는 것

  • 오버로딩 : 함수의 이름은 같으나 함수의 매개 변수 숫자, 타입 등을 달리해서 다르게 사용
  • 오버라이딩 : 상위 클래스의 메소드를 하위 클래스에 똑같은 이름으로 재정의 , 메소드 이름은 같으나 상위 클래스의 참조 변수냐, 하위 클래스의 참조 변수냐에 따라 호출되는 메소드들이 다르다.

#.추상화

어떤 실체로부터 공통적인 부분이나 관심 있는 특성들만 한 곳에 모은 것

어떤 하위 클래스들에 존재하는 공통적인 메소드를 인터페이스로 정의

 

#.추상 클래스 VS 인터페이스

-추상 클래스(abstract)

:미완성 설계도에 비유, 새로운 클래스가 추상 클래스를 상속받아 추상 메서드를 구현해주면 완전한 클래스가 되는 것

  • new를 통해 객체를 직접 생성 불가
  • extends 이용
  • 다중 상속 불가능
  • 생성자, 변수, 메서드 모두 사용 가능
  • 추상 메서드 사용(선언부만 작성하고 구현부는 작성하지 않음)
  • abstract로 선언한 메소드를 자식 클래스에서 반드시 구현해야함(오버라이딩), 강제로 구현하게 함

-인터페이스

:더 추상화된 클래스, 구현된 것은 아무것도 없고 밑그림만 그려져 있는 기본 설계도

  • 일반 메소드 또는 멤버 변수를 구성원으로 가질 수 없다
  • 오직 추상메서드와 상수만을 가질 수 있다.
  • implements를 이용
  • 클래스와 다르게 다중 상속이 가능하며 인터페이스는 인터페이스로부터만 상속받을 수 있다.

'개발(~국비) > 기술면접' 카테고리의 다른 글

09.배열 vs ArrayList  (0) 2022.10.20
08.클래스 변수/인스턴스 변수/지역변수/매개변수  (0) 2022.10.20
06.Static , class/Instance  (0) 2022.10.19
05.스레드(Thread)  (0) 2022.10.19
04.객체의 직렬화  (0) 2022.10.19