[Java] 객체지향개념 - 추상화

miyeon·2023년 3월 19일
0

Java

목록 보기
9/10
post-thumbnail

추상화

  • 추상화된 코드는 구체화된 코드보다 유연하다 (변경에 유리)

추상 클래스

  • 미완성 메서드를 가지고 있는 클래스 (미완성 설계도)
  • 다른 클래스에 도움을 주기 위한 클래스, 객체 생성 불가
abstract class Player {
	abstract void play(int pos);
    abstract void stop();
}
  • 상속을 통해 추상 메서드를 구현해야 인스턴스 생성이 가능
class AudioPlayer extends Player {
	void play (int pos) {  } 
    void stop () {  }
}

AudioPlayer ap = new AudioPlayer();
  • 추상클래스 내에 모든 추상메서드를 구현하지 않으면 추상클래스임
abstract class AudioPlayer extends Player {
	void play (int pos) {  } 
    // void stop (); 이 메서드가 보이지 않지만 상속받아서 남아있기 때문
}

추상 메서드

구현부 { } 가 없는 메서드 (미완성 메서드)

  • 꼭 필요하지만, 자손마다 다르게 구현될 것으로 예상되는 경우
  • 추상메서드 호출가능 (호출시에는 선언부만 필요)
    👉 자손 클래스에서 추상메서드를 구현하고 인스턴스를 생성 후, 호출 가능

작성

  • 여러 클래스에 공통적으로 사용될 수 있는 추상클래스를 바로 작성
  • 기존 클래스의 공통 부분을 뽑아서 추상클래스를 작성

장점

  • 코드의 관리가 용이
  • 코드의 중복 제거
  • 의미있는 단계별로 작성 가능
  • 설계도를 쉽게 작성할 수 있음.

참고 📑

profile
내가 보려고 기록하는 블로그

0개의 댓글