[자바] 추상 클래스

컴공생의 코딩 일기·2021년 8월 2일
0

자바

목록 보기
6/10
post-thumbnail

목차

  • 추상 클래스란
  • 추상 클래스의 특징
  • 추상 클래스의 사용 방법

추상 클래스란

추상 클래스란 메서드를 구현하지 않고 정의만 한 형태를 추상 클래스라 합니다.
메서드에 정의와 구현을 구분하는 방법은 메서드에서 {}(중괄호)가 없으면 정의 있으면 구현입니다.
추상 클래스는 불완전 클래스라고도 불립니다.
추상 클래스를 사용하는 이유는 추상 메서드로 포함된 부모 클래스가 상속한 자식 클래스에서 무조건 추상 메서드를 구현하기 위함입니다.

추상 클래스의 특징

  1. 추상 메서드를 가진다.
  2. 불완전 클래스라서 자체적으로 객체화가 불가능하다.
  3. 추상 클래스를 상속받은 자식 클래스는 반드시 부모 클래스에 구현하지 않은
    추상 메서드를 모두 구현해야 한다.

추상 클래스의 사용 방법

추상 클래스 사용법

abstract class 클래스 명{}

추상 메서드 사용법

abstract 데이터 타입 메서드명();

예제) 추상 클래스 상속

// 추상 메서드 선언
abstract class AbstractParent{
	//변수 선언
	int value = 10;
	
	// 일반 메서드 구현
	void parentMethod() {
		System.out.println("일반 메서드");
	}
	
	// 추상 메서드 정의
	abstract void absMethod();
	
}


class AbstractChild extends AbstractParent{
	
	@Override
	void absMethod() {
		System.out.println("추상 메서드 구현");
	}
}

public class Abstract {

	public static void main(String[] args) {

		AbstractChild ac = new AbstractChild();
		
		System.out.println("추상 클래스인 부모 클래스 변수 -> " + ac.value);
		ac.parentMethod();  // 부모 클래스에서 일반 메서드 호출
		ac.absMethod();  // 자식 클래스에서 부모 클래스 추상 클래스를 구현한 메서드를 호출
				
	}

}

추상 클래스의 상속

추상 클래스 사이에서도 상속이 가능합니다. 다른 추상 클래스로 상속받은 추상 클래스에 상속받은 자식 클래스는 상속받은 추상 클래스뿐만 아니라 그전에 상속받은 모든 추상 클래스를 구현해야 합니다.

예제) 추상 클래스의 상속

abstract class Abstract1 {

	abstract void abstract1Method();// 첫 번째 추상 메서드 정의

}

abstract class Abstract2 extends Abstract1 {

	abstract void abstract2Method(); // 두 번째 메서드 정의

}

class GeneralClass extends Abstract2 {

	void abstract1Method() {
		System.out.println("abstract1 Method"); // 첫 번째 추상 메서드 구현
	}

	void abstract2Method() {
		System.out.println("abstract2 Method"); // 두 번째 추상 메서드 구현
	}

}

public class Abstract02 {

	public static void main(String[] args) {

		GeneralClass gc = new GeneralClass();

		gc.abstract1Method(); // 첫 번째 메서드 호출
		gc.abstract2Method(); // 두 번째 메서드 호출
	}

}

출력 결과:
abstract1 Method
abstract2 Method

이상으로 추상 클래스에 대해서 알아봤습니다. 잘못된 부분이나 부족한 부분 있으면 피드백 감사하겠습니다.!!!

profile
더 좋은 개발자가 되기위한 과정

0개의 댓글