Java의 정석 기초편(남궁성) 정리 + a/6 ~ 7. 객체지향 프로그래밍 1, 2

객체지향 프로그래밍2 31 ~ 32 + 35 . 추상 클래스, 추상 메서드, 인터페이스

doriver 2022. 7. 30. 16:45

메서드 내용이 상속받는 클래스에 따라 달라질수 있기때문에 조상 클래스에서는 선언부만 작성하고, 실제 내용은 상속받는 클래스에서 구현하도록 비워둔다.

 

추상 클래스 (abstract class)

미완성 설계도(추상 메서드를 포함하고 있다는 의미)

추상 메서드를 포함하고 있다는 것을 제외하고는 일반 클래스와 전혀 다르지 않다.

추상 클래스로 인스턴스를 생성할수 없다.

상속을 통해서 자손클래스에 의해 완성된다.

새로운 클래스를 작성하는데 있어서 바탕이 되는 조상 클래스

abstract class 추상클래스 이름 {
	. . .
}

 

추상 메서드 (abstract method)

메서드는 선언부와 구현부로 구성되어 있다. 선언부만 작성하고 구현부는 작성하지 않은 채로 남겨 둔 것.

/* 주석을 통해 어떤 기능을 수행할 목적으로 작성했는지 설명 */
abstract 리턴타입 추상메서드이름 ();	// 구현부가 없으므로 {}대신 문장 끝 알리는 ';'을 적어줌

 

인터페이스 (interface)

일종의 추상클래스, 오직 추상메서드와 상수만을 멤버로 가질수 있다.

추상클래스는 부분적으로만 완성된 '미완성 설계도' , 인터페이스는 구현된것은 아무것도 없고 밑그림만 그려져 있는 '기본 설계도'

다른 클래스를 작성하는데 도움줄 목적으로 작성된다

interface 인터페이스이름 {

	public static final 타입 상수이름 = 값;
    public abstract 리턴타입 메서드이름 (매개변수목록);

}

모든 멤버변수는 public static final 이어야 하며, 생략가능

모든 메서드는 public abstract 이어야 하며 , 생략가능

(단, static메서드와 디폴트 메서드는 예외)

 

제어자 생략시, 생략된 제어자는 컴파일 시에 컴파일러가 자동적으로 추가해준다