프로그램이 필요로 하는 실제 데이터들을 모델링 하는 기술
추상화 EX1)
회원관리
주민등록번호 pNo string
이름 name string
성별 sex char
주소 address string
나이 age int
선언되어 있지만 구현되지 않은 미완성의 (추상)메소드를 포함한 클래스
미완성 클래스(자체적 객체 생성 불가 ⇒ 반드시 상속하여 객체 생성)
클래스 내에 일반 변수, 메소드 포함 가능
객체 생성은 안되지만 참조형 변수 타입으로는 사용 가능
장점: 일관된 인터페이스 제공, 꼭 필요한 기능 강제화
몸체 없는 메소드로 상속 시 반드시 구현해야 하는 오버라이딩이 강제화되는 메소드이다.
추상메소드로만 구성된 추상 클래스(일반 메소드, 변수 x, 필드 수정 안됨, 생성자 없음)
여러 클래스에서 사용되는 동일한 상수일 경우 인터페이스에 정의한 후 해당 상수를 공유할 수 있게 하면 중복을 줄일 수 있다.
추상 메소드 작성하려면 abstract 키워드를 표시해야 하지만 인터페이스 내부에는 모든 메소드가 추상메소드이므로 public abstract 키워드를 생략할 수 있다.
추상 메소드에 대한 구현과 재정의는 인터페이스를 상속받은 후손 클래스에서 구현
변수는 묵시적으로 public static final, 따라서 인터페이스 변수의 값 변경 시도 시 컴파일 시 에러 발생
객체 생성은 안 되나 참조형 변수로는 가능
상위 타입 역할로 다형성을 지원하여 연결
해당 객체가 다양한 기능 제공 시에도 인터페이스에 해당하는 기능만을 사용하게 제한 가능
공통 기능 상의 일관성 제공
공동 작업을 위한 인터페이스 제공