선언위치
클래스 변수와 인스턴스 변수는 클래스 영역에,
지역 변수는 클래스 이외의 영역(메서드, 생성자, 초기화 블럭)에 선언합니다.
생성시기(메모리 할당 시기)
클래스 변수는 클래스가 메모리에 올라 갈 때
(인스턴스 변수에 static만 붙여주면 됨, 모든 인스턴스가 공통된 값을 공유, public을 붙이면 같은 프로그램 내에서 어디서든 접근할 수 있는 전역변수가 됨, 클래스이름, 클래스 변수명을 통해서 접근 가능)
인스턴스 변수는 인스턴스가 생성될 때
(인스턴스 변수의 값을 읽어오거나 저장하려면 인스턴스를 먼저 생성하여야 한다. 각각의 인스턴스마다 고유의 값을 가져야 할 때는 인스턴스 변수로 선언한다.)
지역 변수는 변수 선언문이 수행되었을 때 생성됩니다.
(메서드 내에서 선언되는 변수, 메서드가 실행될 때 메모리를 할당 받고 끝나면 소멸되어 사용 불가능)
모두 클래스이고 (: 객체를 만들어 내기 위한 설계도 혹은 틀 연관되어 있는 변수와 메서드의 집합)
하위클래스에서 모든 추상 메서드를 구현해야 한다는 것입니다.
추상 클래스는 추상 메서드 외 일반 멤버 변수와 메서드를 가질 수 있지만
extends를 사용
단일 상속만 가능
작업의 레벨 분할을 위해서 사용
인터페이스는 추상 메서드와 static final 변수만 사용한다는 점입니다.
Implements를 사용
중복 구현 가능
공동 작업을 위한 상호간의 인터페이스를 위해 사용