OOP 인터뷰 질문 정리

What are the basic concepts of OOP?

  • Abstraction
  • Polymorphism
  • Inheritance
  • Encapsulation

What is dynamic or run time polymorphism?

Object와 Class의 차이

Class를 인스턴트화(Instantiation)하면 Object(Instance)가 된다.
객체는 클래스의 인스턴스다.
객체 간의 링크는 클래스 간의 연관관계의 인스턴스다.
실행 프로세스는 실행 프로그램의 인스턴스다.

추상적인 컨셉에서 논할 때는 클래스와 객체로 이야기 한다.
프로그램 컴파일 레벨의 아래 쪽에서 논할 때는 클래스와 인스턴스로 이야기 한다.

Object has states and behaviors. An object is an instance of class.
Class can be defined as a template/blue print that describes the behaviors/states that object of its type support.

오브젝트

오브젝트는 실 세계와 연관이 깊다. ‘개’라는 오브젝트를 우리는 실 생활에서 쉽게 찾을 수 있다.

클래스

클래스는 각 각의 오브젝트들을 만들기 위한 청사진이다.
Local variable, Instance variable, class variable.
$1 :

Instantiation

자바에서는 new 키워드를 사용하면 인스턴스화가 된다.
(declaration class_name var_name = instantiation class_name(initialization);

Method

메소드는 오브젝트와 오브젝트의 통신을 하는 방법이다.
오브젝트의 상태를 나타내는 것은 인스턴스 변수이다.

Abstract Class

Class/Static Method

Static/Class Initializer

Constructor

Destructor/Finalizer

Superclass /Baseclass

Subclass/Derived Class

Inheritance

Encapsulation

Polymorphism (예시 없이)

Multiple Inheritance

Delegation

Composition /Aggregation

Interface /Abstract class

Interface /Protocol

Method Overriding

Method Overloading

IS-A 와 HAS-A

Method Signatures

Method Visibility