-
[Java] 추상 클래스Java 2023. 9. 4. 10:10
추상 클래스
- 구현 코드 없이 메서드의 선언만 있는 추상 메서드를 포함한 클래스
- abstract 키워드를 포함하면 추상클래스가 된다.
- 하나이상에 추상 메서드를 포함하면 반드시 추상클래스가 되어야 한다.
- 메서드 선언 : 반환타입, 메서드 이름, 매개변수로 구성
- 메서드 정의 : 메서드 구현과 동일한 의미 구현부를 가짐
public abstract class Animal { public void move() { System.out.println("동물이 움직입니다."); } // 추상 메서드 public abstract void hunt(); }추상 메서드 상속
- 자식 클래스도 추상 클래스로 만들어 준다
- 추상 메서드를 일반(구현) 메서드로 재정의
public class Human extends Animal { @Override public void hunt() { System.out.println("돌 도끼로 사냥을 합니다."); } } public class Person extends Human { @Override public void hunt() { System.out.println("총으로 사냥을 합니다."); } }클래스 설계

- 부모클래스에서 추상 메서드를 활용하여 설계
- 정의할 수 있는 메서드는 일반 메서드로 선언
부모 클래스
public abstract class Computer { public abstract void display(); public abstract void typing(); public void turnOn() { System.out.println("전원을 넣다"); } public void turnOff() { System.out.println("전원을 끄다"); } }- display와 typing은 추상메서드로 선언하여 자식클래스에서 재정의하여 사용
- turnOn, turnOff는 일반메서드로 선언
자식 클래스
public class DeskTop extends Computer { // 구현 메서드 오버라이드 @Override public void display() { System.out.println("모니터에 화면을 출력 합니다."); } @Override public void typing() { System.out.println("키보드로 글자를 입력 합니다."); } } public abstract class NoteBook extends Computer { @Override public void typing() { System.out.println("노트북 자판으로 글자를 입력 합니다."); } }- Computer를 부모클래스로 하는 자식클래스 생성
- 사용할 추상메서드는 재정의 해주어야 한다.
public class MyNoteBook extends NoteBook { // 구현 메서드로 오버라이드 @Override public void display() { System.out.println("블루투스 키보드로 글자를 입력 합니다."); } }- 자식클래스를 부모클래스로 하는 자식클래스도 생성할 수 있다.
'Java' 카테고리의 다른 글
[Java] 인터페이스(interface) (0) 2023.09.04 [Java] 템플릿 메서드 (0) 2023.09.04 [Java] 다형성 (0) 2023.08.30 [Java] 상속 (0) 2023.08.22 [Java] Class 만들기 (0) 2023.08.21