java - 추상화 (abstract)

songmin jeon·2023년 12월 6일
0
post-thumbnail

1. 추상화 (abstract)


1.0. 추상화란?

  1. 추상화(abstract) 클래스
  • 추상 메서드가 하나라도 있다면 반드시 추상클래스가 되어야 한다.
  • 추상 클래스도 일반 메소드를 가지고 있을 수 있다.
  • abstract 키워드를 사용해서 선언한다.
  1. 추상 메서드
  • { } 가 없는 메서드
  • 선언{틀 : 리턴타입, 매개변수, 메소드명}은 되어 있으나, 로직이 구현되어 있지 않은 메서드
  • 자식 클래스에서 재정의를 요청함! (필수)

아래 실습을 통해 abstract 구조를 파악해보자.
닌텐도 실행문구 실행에서 GameChip 이라는 클래스 생성

일반 클래스를 추상 클래스를 상속 받을때는 상황이 다름.
추상 클래스에 쓰는 메소드는 꼭 구현 해줘야함...!


객체가 상속 받으면 기능이 객체 내 없을때 부모 클래스까지 찾음으로 부모 클래스로 화살표가 향함을 뜻함!

추상화

  • 위에서 밑으로 가는 것을 구체화
  • 클래스 간의 공통점을 찾아내서 공통의 조상을 만드는 작업
  • 상속 계츨도를 따라 올라 갈수록 클래스의 추상화는 더욱 심화된다.

구체화

  • 아래에서 위로 가는 것을 추상화
  • 상속을 총해 클래스를 구현, 확장하는 작업
  • 상속 계층도를 따라 내려올수록 클래스는 더 구체적이다.


1.1. 추상메소드와 추상 클래스의 필요성

추상 메소드를 사용함으로써 팀원들에게 정해진 메소드 명으로 시작할 수 있게 틀을 제공할 수 있음! (강제성)


1.2. 추상클래스 특징

  • 추상 클래슨느 객체는 생성 할 수 없다.
  • 추상클래스의 필요성
    -> 상속관계에서 서브클래스가 반드시 구현해야함을 알릴 때(강제성)
    -> 설계와 구현 분리

접근제한자

클래스 변수화 메소드를 외부(다른클래스)에서 접근할 수 있는 범위를 지정


1.3. (실습)월급계산 프로그램 만들어보기

위 정규직
중간 비정규직
아래 아르바이트


1.4. super( );

  • 슈퍼 클래스를 가르키고 , 만약 부모가 없을땐 Object를 가르킨다.
  • super(); 는 메서드의 첫 줄에 사용해야 한다.

그외.

컨트롤 + 시프트 + s = 파일(클래스) 한번에 저장

profile
제가 한 번 해보겠습니다.

0개의 댓글