Christmas Pikachu 22/05/30 JAVA (추상 클래스, 메소드)
Java

22/05/30 JAVA (추상 클래스, 메소드)

ZI_CO 2022. 6. 3.

<추상 클래스>

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

 

<추상 클래스 선언>

추상클래스선언

 

 

 

-특징-

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

 

 

 

<추상 메소드란>

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

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

추상메소드를 쓰려면 반드시  return type 앞에 abstract를 입력해줘야한다.

 

추상메소드의 형태 (상속받은 클래스에서 사용할땐 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()메소드를 호출시켜 출력해준다.

 

 

 

 

 

※느낀점※

상속에서 좀더 나아가 추상이란걸 배웠다 추상클래스는 상속받은 하위클래스에서 무조건 오버라이딩(Override)를 시켜줘야한다. 설계목적으로 많이 쓰인다고 한다. 즉, 추상클래스가 있으면 상속받은 클래스를 사용을 안할수가 없다 무조건 상속받은 클래스를 사용하여야기 때문에 설계에 많이 쓰인다.

비슷한 부분이 많고 헷갈리지만 좀 더 개념을 탄탄하게 잡고 기억을해서 여러가지 프로그램을 짜보면서 익숙해지는 수 밖에 없는거같다. 

 

다음 시간에는 스태틱과 싱글톤을 배워 보자!!!

 

'Java' 카테고리의 다른 글

@RequiredArgsConstructor  (0) 2024.05.27
22/05/30 JAVA (인터페이스, 스태틱)  (0) 2022.06.11
22/05/27 JAVA (class - 상속, 오버라이딩, 다형성)  (0) 2022.05.29
22/05/26 JAVA (12DAY)  (0) 2022.05.29
22/05/25JAVA (DAY11)  (0) 2022.05.28

댓글