티스토리 뷰

1. 추상화(Abstracition)

- 공통의 속성이나 기능을 묶어 이름을 붙이는 것을 추상화라고 할 수 있다.

- 객체지향적 관점에서 클래스를 정의하는 것

예시) 사자, 고양이, 강아지를 객체라고 한다면, 객체의 공통점인 동물이라고 표현할 수 있는대 이때 동물로 묶는 행위를 추상화라고한다.

 

2. 캡슐화(encapsulation)

- 특정 객체가 독립적으로 역할을 수행하기 위해 필요한 데이터와 기능을 하나로 묶는 것을 캡슐화라고한다.

- 쉽게 말해 모듈화를 의미한다. 이러한 캡슐화를 통해 정보를 객체 안에 포함시키고, 그 정보에 대한 직접 접근은 허용하지 않는 대신, 필요에 따라 확인할 수 있는 인터페이스를 외부에 공개함으로써 정보 은닉 효과도 자연스럽게 따라온다.

 

3. 상속(inherutance)

- 상위 개념의 특징을 하위 개념이 물려받는 것을 상속이라 한다.

- 상속은 코드의 재사용성을 높이고 확장성을 높여준다.

- 상속에서 주의해야할 점은 계층도, 조직도 관점(가족 관계도와 같은)에서 이해하면 안된다는 점이다. 분류도 관점에서 이해해야한다. 하위 클래스는 상위 클래스의 역할을 대신할 수 있으면서 고유의 역할도 수행할 수 있어야 한다.

예시) 아버지와 아들로 예시를 들면 아들은 아버지의 역할을 할 수 있으면서 아들 고유의 역할도 수행할 수 있어야 하지만 그렇지 못하는 부분에서는 상속을 사용할 때는 주의해야한다.

       - 아버지와 아들 -> 틀림

       - 포유류와 고래 -> 맞음

 

4. 다형성(polymorphism)

- 같은 모양의 코드가 다른 행위를 하는것을 나타낸다.

- 자바에서는 Overriding과 Overloading 이 그 방법이다.

  • Overriding 오버라이딩
    - Method 재정의라고 할 수 있다. 슈퍼 클래스의 메서드 이름, 매개 변수, 같은 반환 값이지만 내부 로직을 새롭게 재정의 하는 개념이다.
  • Overloading 오버로딩
    - Method의 이름이 같지만 매개 변수의 개수 또는 타입이 다르다.
    - 반환 타입은 관계없다.

'StudyingRecords > Interview Question' 카테고리의 다른 글

[Java] JVM 메모리 구조  (0) 2022.03.02
[Java] OPP의 5대 원칙(SOLID)  (0) 2022.03.02
[Java] 접근제어자  (0) 2022.03.02
[Java] String, StringBuilder, StringBuffer의 차이  (0) 2022.03.02
[Java] 컴파일 과정  (0) 2022.03.02
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/06   »
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
글 보관함