Christmas Pikachu 추상 클래스
개발일지/자바

추상 클래스

ZI_CO 2022. 9. 5.

<추상 클래스>

자바에서는 하나 이상의 추상 메소드를 포함하는 클래스를 가리켜 추상 클래스(abstract class)라고 합니다.

 

<추상 클래스 선언>

 

추상클래스선언

 

 

 

 

-특징-

 * 1. 클래스 type 앞에 abstract 키워드가 붙는다.
 * 2. 추상 클래스는 생성할 수 없다. (new를 할수없다 단순히 설계 역할만 한다.)
 * 3. 추상 메소드를 포함 할 수 있다. 하지만 추상 메소드를 꼭 포함하지는 않아도 된다.

 

 

 

<추상 메소드란>

추상 메소드(abstract method)란 자식 클래스에서 반드시 오버라이딩해야만 사용할 수 있는 메소드를 의미한다.

자바에서 추상 메소드를 선언하여 사용하는 목적은 추상 메소드가 포함된 클래스를 상속받는 자식 클래스가 반드시 추상 메소드를 구현하도록 하기 위함이다.

 

 

 

추상메소드의 형태 (상속받은 클래스에서 사용할땐 Override필수)&nbsp;하위클래스에서 추상메소드를 사용하려면 클래스가 추상클래스형태(abstract)가 있어야한다.

 

 

하지만 추상메소드를 안쓰고 일반 메소드를 쓰는 방법도 있다.

 

일반메소드를 사용형태(Override 필수)

 

 

 

 

예를 들면 모듈처럼 중복되는 부분이나 공통적인 부분은 미리 다 만들어진 것을 사용하고, 이를 받아 사용하는 쪽에서는 자신에게 필요한 부분만을 재정의하여 사용함으로써 생산성이 향상되고 배포 등이 쉬워지기 때문이다.

 

 

- 특징

 * abstract(추상)
 * 1. 추상 메소드 : return type 앞에 abstract 키워드가 붙는다.
 * 2. 추상 메소드는 일반 클래스 안에 선언할 수 없다.
 * 3. 상속 또는 구현된 클래스에서 무조건  Override(재정의)가 되어야 한다.

 

 

밑에 그린에는 Factory라는 추상클래스를 상속받은 하위(자식)클래스들이다. extend를 해줘서 상속을받고

호출을할 메소드들은 무조건 Override를 해줘야한다.

 

추상클래스에서 상속받은 LgFactory클래스(일반메소드사용, Override사용 재정의)

 

 

 

추상클래스에서 상속받은 SamsungFactory클래스(일반메소드사용, Override사용 재정의)

 

 

 

 

 

출력 

 

 

 

<코드해석>

1. LgFactory, SamsungFactory 클래스를 생성을해준다.

2. 각 클래스의에서 Override를 시켜 재정의를 해주는 start(), stop()메소드를 호출시켜 출력해준다.

출처: https://zico8282.tistory.com/entry/220530-JAVA-추상-클래스-메소드?category=1017521 [ZICO_코딩맛집:티스토리]

댓글