면접을 보면서 나온 질문 중 하나인데 자바를 하는 사람이라면 기본중에 기본으로 알아야 하는 지식도 제대로 말을 못하면서 어떻게 더 심화된 지식을 이해 할 수 있을까라는 생각이 들정도로 다시 되돌아 볼 수 있는 고마운 면접이였다.
프로그래밍에서 필요한 데이터를 추상화시켜 행위와 상태를 가진 객체로 만들고, 이러한 객체들 간의 유기적인 상호작용을 통해 로직을 구성하는 방법
클래스는 집단의 속성, 행위를 변수 또는 메서드로 정의하고
인스턴스는 클래스에서 정의한 것을 토대로 메모리에 할당된 것(객체)
캡슐화는 코드의 중복을 피할 수 있고, 객체의 속성과 행위를 메서드로 묶어, 실제 구현 내용 일부를 외부에 감추어 은닉한다.
부모 클래스의 변수, 메서드를 자식 클래스에서 되물림 받아 사용할 수 있다.
공통의 속성이나 기능을 묶어 이름을 붙히는 것. 핵심은 불필요한 코드를 줄이고 중요한 부분을 살리는 것 입니다.
예를 들면 for, do-while, while 등이 있습니다.
다형성이란 하나의 객체에 여러가지 타입을 대입할 수 있는 것을 말합니다.
예를 들면 오버라이딩과 오버로딩이 있습니다.
오버라이딩이란 하위 클래스에서 상위 클래스를 상속받아 메서드를 재정의 하는 것을 말합니다. 메서드의 이름, 매개변수의 개수, 순서, 형식과 리턴 값은 같지만 자신의 상황에 맞게 메서드를 재정의 하는 것을 말합니다.
오버로딩
오버로딩이란 클래스 내부에서 메서드의 이름은 같고 매개변수의 개수, 타입이 달라야합니다.