추상 클래스(abstract class)

혜미·2021년 8월 7일
0

TIL

목록 보기
5/29
post-thumbnail

abstract 클래스

프로그래밍에서의 추상화: '덜 완성된'

상속 목적으로(인스턴스화 목적X) 클래스를 만든 경우,
(ex) UnivFriend와 HighFriend를 상속의 관계로 연결하기 위해 Friend 클래스를 정의한 경우) 실수로 인스턴스화 돼도 컴파일 에러가 안 나서 위험하다.

추상화하면 인스턴스 생성을 막을 수 있다!

abstract 메소드가 있는 클래스를 abstract 클래스라고 한다.

abstract: 메소드를 완성시키지 않는다는 선언
ex) 오버라이딩 관계 유지를 목적으로 하는 메소드

예시

public abstract void showBasicInfo();

여기 보면 중괄호 { }가 없다. abstract 없이 그냥

public void showBasicInfo();

라고만 하면 컴파일 에러가 뜨지만, abstract를 넣어줌으로써 '내가 일부러 미완성 상태로 둔 거야'라고 알려주게 된다.
따라서 컴파일 에러도 뜨지 않는다.

인스턴스 생성은 불가능하나, 나머지(참조변수 선언...)는
일반적인 클래스처럼 잘 된다!

참조변수 선언 예시
🔽

aaa b(참조변수명) = new aaa(); 

abstract 클래스를 상속하는 하위 클래스

  • abstract 클래스에게 abstract 메소드({ } 없는 미완성된 메소드)를 받아서 구현을 하면 컴파일 에러가 안 난다.

  • 만약 구현 안하고 그대로 받기만 하면 하위 클래스에도 abstract 메소드가 생기는 것이므로 abstract 선언되어야 한다. 안 그러면 컴파일 에러가 난다.

    		   		〰〰〰

    *오렌지미디어 '난 정말 JAVA를 공부한 적이 없다구요' 강의 보고 정리한 내용이다.

0개의 댓글