Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
Tags
- 비밀번호 재설정 API
- MySQL
- 넘파이
- MVC
- Servlet
- JDBC
- 저장소 이전
- 파이썬
- git 충돌 해결
- 스프링부트 OpenAI API
- swap 메모리
- 값 타입
- api 개발
- Chat GPT
- 서버 배포
- jar빌드
- 두수의 합 자바
- 우분투
- github 복제
- springboot
- 프로그래머스
- 페이징 정렬
- JPQL
- Git
- 저장소 복제
- Json 객체
- 자바
- JPA
- 스프링 이메일 전송
- HttpServletResponse
Archives
- Today
- Total
현의 개발 블로그
추상 클래스 (Abstract Class) 본문
추상 클래스는 하나 이상의 추상 메서드를 포함한 클래스를 의미한다.
추상 메서드는 함수 선언만 되어 있고 구현부가 없는 메서드이다.
추상 메서드와 추상 클래스 모두 abstract 키워드를 사용한다.
public abstract class Restaurant {
public abstract void cook();
public abstract void displayBusinessHours();
public abstract void prepareFood();
}
공통된 변수, 행동을 묶어 추상 클래스를 생성하고, 차이점을 자식 클래스로 구체화 할 수 있다.
이 때 자식 클래스는 반드시 추상 클래스 내 추상 메서드들을 모두 구현해야 한다.
public class ChineseRes extends Restaurant{
@Override
public void cook() {
System.out.println("짜장면을 조리합니다.");
}
@Override
public void displayBusinessHours() {
System.out.println("영업시간은 17시~ 23시입니다.");
}
@Override
public void prepareFood() {
System.out.println("춘장과 수타면을 준비합니다.");
}
}
public class ItalyRes extends Restaurant{
@Override
public void cook() {
System.out.println("파스타를 조리합니다.");
}
@Override
public void displayBusinessHours() {
System.out.println("영업시간은 11시~20시입니다.");
}
@Override
public void prepareFood() {
System.out.println("크림소스와 생면을 준비합니다.");
}
}
추상 클래스는 인터페이스와 달리 추상 메서드 외에도 생성자, 일반 메서드를 포함할 수 있다.
그러나 추상 클래스는 미완성 클래스이므로, 객체를 생성할 수 없다.
추상 클래스를 상속받아 구현한 자식 클래스만 객체를 생성할 수 있다.
public class RestaurantClient {
public static void main(String[] args) {
//Restaurant res = new Restaurant(); // 오류남
ChineseRes chineseRes = new ChineseRes();
chineseRes.displayBusinessHours();
ItalyRes italyRes = new ItalyRes();
italyRes.displayBusinessHours();
}
}
오류난 부분을 주석처리하고 실행하면 다음 결과가 출력된다.
참고
'프로그래밍 언어 > 자바' 카테고리의 다른 글
[자바] 예외처리하기 (0) | 2023.06.22 |
---|---|
자바 Hash Set 사용법 (0) | 2023.04.21 |
자바 ArrayList 사용법 (0) | 2023.04.21 |
제네릭 (Generic) (0) | 2023.04.20 |
인터페이스 (Interface) (0) | 2023.04.18 |
Comments