Java - Abstract class

iseon_u·2022년 5월 7일
0

Java

목록 보기
32/77
post-thumbnail

Abstract class 추상 클래스


  • 미완성 설계도, 미완성 메서드를 갖고 있는 클래스
abstract class Player { // 추상 클래스 (미완성 클래스)
		// 추상 메서드 (몸통 {} 이 없는 미완성 메서드)
		abstract void play(int pos);
		abstract void stop();
}
  • 추상 클래스와 추상 메서드는 abstract 키워드 사용
// Player p = new Player();
// 에러, 추상 클래스의 인스턴스 생성 불가 ❌
  • 다른 클래스 작성에 도움을 주기 위한 것. 인스턴스 생성 불가 ❌
class AudioPlayer extends Player {
		// 추상 메서드 몸통 {} 구현
		void play(int pos) {}
		void stop() {}
}

AudioPlayer ap = new AudioPlayer(); // OK ✅
  • 상속을 통해 모든 추상 메서드를 완성해야 인스턴스 생성 가능 ✅
  • 추상 메서드 호출 가능 (호출할 때는 선언부만 필요)
  • 해당 메서드 구현을 강제하는 효과

추상 클래스의 작성

  • 여러 클래스에 공통적으로 사용될 수 있는 추상 클래스 작성
  • 기존 클래스의 공통 부분을 뽑아서 추상 클래스 작성
  • 의미 있는 상속 단계별로 작성
  • 클래스를 쉽게 작성하고 관리 변경에 용이하고 중복이 제거된다.

추상화 (불명확) ↔  구체화 (명확)

  • 추상화된 코드는 구체화된 코드보다 유연하고 변경에 유리하다.
profile
🧑🏻‍💻 Hello World!

0개의 댓글