추상 클래스
Bird.class, Insect.class, Fish.class 등의 실체 클래스에서 공통되는 필드와 메소드를 따로 선언한 Animal.class 클래스를 추상 클래스라고 한다.
추상 클래스의 용도
- 공통된 필드와 메소드의 이름을 통일할 목적
- 실체 클래스를 작성할 때 시간 절약
- 공통적 인 필드와 메소드는 추상 클래스인 Phone에 모두 선언해두고, 다른 점만 실체 클래스에 선언하면 실체 클래스를 작성하는 데 시간을 절약할 수 있다.
추상 클래스 선언
- 추상 클래스를 선언할 때에는 클래스 선언에 abstract 키워드를 붙여야 한다.
- abstract를 붙이면 new 연산자를 이용해서 객체를 만들지 못하고, 상속을 통해 자식 클래스만 만들 수 있다.
public abstract class 클래스 {
//필드
//생성자
//메소드
}
추상 메소드와 재정의
- 메소드의 선언만 통일하고, 실행 내용은 실체 클래스마다 달라야 하는 경우 추상 클래스는 추상 메소드를 선언 가능
- 추상 메소드를 선언하는 방법 ↓
[public ! protected] abstract 리턴타입 메소드이름(매개변수, …);
- 하위 클래스가 반드시 실행 내용을 채우도록 강제하고 싶은 메소드가 있을 경우 해당 메소드를 추상 메소드로 선언
- (ex) 어떤 소리를 내는지는 결정할 수 없지만 동물은 소리를 낸다는 공통적인 특징을 규정하기 위해 sound() 메소드를 추상 메소드로 선언
public abstract class Animal {
public abstract void sound();
}
확인 문제
1. 추상클래스에 대한설명입니다. 맞는 것에 o표, 틀린 것에 x표 하세요.
① 추상 클래스는 직접 new 연산자로 객체를 생성할 수 없다. ( O )
② 추상 클래스는 부모 클래스로만 사용된다. ( O )
③ 추상 클래스는 실체 클래스들의 공통된 특성(필드, 메소드)으로 구성된 클래스이다. ( O )
④ 추상 클래스에는 최소한 하나의 추상 메소드가 있어야 한다. ( X )
2. 추상 메소드에 대한 설명입니다. 맞는 것에 o표, 틀린 것에 x표 하세요.
① 추상 메소드는 선언부만 있고, 실행 블록을 가지 지 않는다. ( O )
② 추상 메소드는 자식 클래스에서 재정의해서 실행 내용을 결정해야 한다.( O )
③ 추상 메소드를 재정의하지 않으면 자식 클래스도 추상 클래스가 되어야 한다. ( O )
④ 추상 메소드가 있더 라도 해당 클래스가 꼭 추상 클래스가 될 필요는 없다. ( X )
3. 다음 클래스를 실행하면 “로그인 합니다.”, “파일 다운로드 합니다.”가 차례대로 출력되도록 LoginServlet 과 FileDownloadServlet 클래스를 선언해보세요.
package CH07.test03;
public class LoginServlet extends HttpServlet {
@Override
public void service() {
System, out. print In ("로그인 합니다.");
}
}
package CH07.test03;
public class FileDownloadServlet extends HttpServlet {
©Override
public void service() {
System.out.println("파일 다운로드 합니다.");
}
}
'JAVA' 카테고리의 다른 글
타입 변환과 다형성 (0) | 2022.11.09 |
---|---|
인터페이스 (0) | 2022.11.09 |
타입 변환과 다형성 (0) | 2022.10.31 |
상속 (0) | 2022.10.31 |
패키지와 접근 제한자 (0) | 2022.10.13 |