01 추상클래스
1-1 추상클래스의 개념
일반 클래스는 new 연산자를 사용해 인스턴스를 생성할 수 있지만, 추상클래스는 인스턴스를 생성할 수 없고 오직 상속을 통하여 완성된 자식 클래스로 구현해서 인스턴스를 생성할 수 있음.
메서드 본체를 완성하지 못한 메서드를 추상메서드라고 한다. 추상메서드는 무엇을 할지는 선언하지만, 어떻게 할지는 정의하지 않는다.
1-2 추상클래스의 선언
추상클래스도 필드와 메서드, 생성자를 포함할 수 있음, 추상클래스는 다음과 같이 abstract 키워드로 선언하고 구현 클래스처럼 public으로 지정할 수 있다.
abstract class 클래스이름{ // 필드 // 생성자 // 메서드 } |
추상메서드도 abstract 키워드를 붙여 선언하는데, 실체가 없기 때문에 본체 없이 세미콜론으로 끝나고 public이나 protected로 지정할 수 있다.
abstract 반환타입 메서드이름(); |
02 인터페이스 기본
2-1 개요
일부메서드를 추상화한 추상 클래스와 달리 인터페이스는 모든 멤버를 추상화하므로 추상클래스의 극단적인 예라고 할 수 있다.
2-2 디폴트 메서드와 정적 메서드
디폴트 메서드를 이용하면 기존에 사용하던 인터페이스의 구현 클래스에 영향을 주지 않고도 인터페이스를 변경할 수 있다.
default 반환타입 디폴트메서드이름(){ // 본체를 구성하는 코드 } 디폴트 메서드는 오버라이딩될 수 있지만, 정적 메서드는 오버라이딩될 수 없음 |
2-3 인터페이스의 구조
인터페이스는 무엇을 할지 명시하지만, 어떻게 구현할지는 명시하지않는다. 인스턴스 변수를 선언할 수 없고, 객체도 생성할 수 없기 때문에 생성자가 없다.
interface 인터페이스이름 { // 상수 필드 // 추상 메서드 // 디폴트 메서드 // 정적 메서드 |
인터페이스 멤버에 명시된 public, static, final, abstract 키워드는 생략할 수 있음
2-4 인터페이스의 상속
인터페이스도 extends 키워드를 사용해 자식 인터페이스를 정의할 수 있다.
// 인터페이스를 상속하려면 extends 키워드를 사용한다 interface 자식인터페이스 extends 부모인터페이스 { } // 인터페이스를 구현하려면 implements 키워드를 사용한다. class 자식클래스 implements 부모인터페이스 { } |
다수의 인터페이스를 상속해 새로운 자식 인터페이스나 구현클래스를 작성할 수 있으나, 여러 개의 클래스를 상속할 순 없다.
03 인터페이스 응용
3-1 인터페이스와 상수
상수를 인터페이스에 정의하면 여려종류의 클래스에서 사용할 수 있어 편리하다.
3-2 Comparable 인터페이스
Comparable 인터페이스는 객체를 비교하기 위한 용도로 사용된다.
public interface Comparable { int compareTo(Object other); } |
'JAVA' 카테고리의 다른 글
[Chapter 05 문자열, 배열, 디버깅] 프로그래밍 문제 답 (2) | 2019.10.25 |
---|---|
[Chapter 04 객체지향] 프로그래밍 문제 답 (5) | 2018.06.24 |
UML다이어그램 만들기! (0) | 2018.05.30 |
자바 프로그램 구조와 기초 문법 익히기 (2) | 2018.05.02 |
JDK와 Eclipse 설치(윈도우) (1) | 2018.04.25 |
댓글