1. 추상 클래스
추상 클래스
- 추상 메소드(abstract method)
- abstract로 선언된 메소드, 메소드의 코드는 없고 원형만 선언
- 추상 클래스(abstract class)
- 추상 메소드를 가지며, abstract로 선언된 클래스
- 추상 메소드 없이, abstract로 선언한 클래스
- 추상 클래스는 온전한 클래스가 아니기 때문에 인스턴스를 생성할 수 없음
추상 클래스의 상속과 구현
- 추상 클래스 상속
- 추상 클래스를 상속받으면 추상 클래스가 됨
- 서브 클래스도 abstract로 선언해야 함
- 추상 클래스 구현
- 서브 클래스에서 슈퍼 클래스의 추상 메소드 구현(오버라이딩)
- 추상 클래스를 구현한 서브 클래스는 추상 클래스 아님
추상 클래스의 목적
- 상속을 위한 슈퍼 클래스로 활용하는 것
- 서브 클래스에서 추상 메소드 구현
- 다형성 실현
2. 인터페이스
자바의 인터페이스
- 클래스가 구현해야 할 메소드들이 선언되는 추상형
- 인터페이스 선언
- interface 키워드로 선언
- public interface SerialDriver {…}
인터페이스의 구성 요소들
- 상수
- public만 허용, public static final 생략
- 추상 메소드
- public abstract 생략 가능
- default 메소드
- 인터페이스에 코드가 작성된 메소드
- 인터페이스를 구현하는 클래스에 자동 상속
- public 접근 지정만 허용. 생략 가능
- private 메소드
- 인터페이스 내에 메소드 코드가 작성되어야 함
- 인터페이스 내에 있는 다른 메소드에 의해서만 호출 가능
- static 메소드
- public, private 모두 지정 가능. 생략하면 public
자바 인터페이스 특징
- 인터페이스의 객체 생성 불가
- 인터페이스 타입의 레퍼런스 변수 선언 가능
인터페이스 상속
- 인터페이스 간에 상속 가능
- 인터페이스를 상속하여 확장된 인터페이스 작성 가능
- extends 키워드로 상속 선언
- 예)
- 인터페이스 다중 상속 허용
- 예)
인터페이스 구현
- 인터페이스의 추상 메소드를 모두 구현한 클래스 작성
- implements 키워드 사용
- 여러 개의 인터페이스 동시 구현 가능
- 인터페이스 구현 사례
- PhoneInterface 인터페이스를 구현한 SamsungPhone 클래스
- SamsungPhone 클래스는 PhoneInterface의 default 메소드상속
'Programming Languages > Java' 카테고리의 다른 글
[Java] 자바의 GUI 응용프로그램과 Swing 패키지 (0) | 2021.11.12 |
---|---|
[Java] 자바의 이벤트 처리 (0) | 2021.11.12 |
[5장] Java의 메소드 오버라이딩 (0) | 2021.05.04 |
8주차 스터디 인증 (0) | 2021.05.04 |
[5장] Java 상속의 개념과 protected 접근 지정 (0) | 2021.05.04 |