부트캠프 기록/Section1

[ 객체지향 ] 추상화

bbangduck 2023. 3. 2. 19:51
  • 추상화의 핵심 개념과 목적을 이해하고 설명할 수 있다.
    • 기존 클래스들의 공통점을 모아서 상위 클래스를 만드는 것

 

  • abstract 제어자가 내포하고 있는 의미를 이해하고, 어떻게 사용되는 지 설명할 수 있다.
    • 미완성
    • 추상 메서드
    • 추상 클래스 - 객체 생성이 불가

 

  • 추상 클래스의 핵심 개념과 기본 문법을 이해할 수 있다.
    • 메서드 시그니처만 존재하고 바디가 선언되어 있지 않은 추상 메서드를 포함하는 클래스
    • 추상클래스는 상속 관계에 있어 새로운 클래스를 작성하는데 매우 유용
    • 추상 클래스는 자바 객체지향 프로그래밍의 추상화를 구현하는데 핵심적인 역할

 

  • final 키워드를 이해하고 설명할 수 있다.
위치 의미
클래스 변경 또는 확장 불가능한 클래스, 상속 불가
메서드 오버라이딩 불가
변수 값 변경이 불가한 상수
  • 자바 추상화에서 핵심적인 역할을 수행하는 인터페이스의 핵심 내용과 그 활용을 이해할 수 있다.
    • 추상 클래스터럼 자바에서 추상화를 구현
    • 추상클래스에 비해 더 높은 추상성을 가짐(기본적으로 추상 메서드와 상수만을 멤버로 가질 수 있음)
      • 새로운 메서드 추가의 어려움 등 기존 인터페이스가 가지는 한계를 보완하기 위해 자바 8이후에 default/satic메서드를 인터페이스에 포함시킬 수 있도록 업데이트 됨
    • 내부의 모든 필드가 public static final로 정의
    • staticdefault 메서드 이외의 모든 메서드가 public abstract로 정의
    • 인터페이스 구현: implements
      • 해당 인터페이스에 정의된 모든 추상메서드를 구현해야 함
      • 다중 구현 가능
    • 인터페이스 장점: 
      • 역할과 구현을 분리시켜 사용자 입장에서는 복잡한 구현의 내용 또는 변경과 상관없이 해당 기능을 사용할 수 있음
      • 개발자 입장에서도 선언과 구현을 분리시켜 개발시간을 단축시킬 수 있고, 독립적인 프로그래밍을 통해 한 클래스의 변경이 다른 클래스에 미치는 영향을 최소화 할 수 있음
  • 추상 클래스와 인터페이스의 차이를 설명할 수 있다.
    • 추상 클래스와 인터페이스 둘 다 하나 이상의 추상메서드로 구성
    • 인터페이스는 기본적으로 추상 메서드와 상수만을 멤버로 가질 수 있음
 

 

'부트캠프 기록 > Section1' 카테고리의 다른 글

[ 객체지향 ] 다형성  (0) 2023.02.26
[ 객체지향 ] 캡슐화  (0) 2023.02.25
[객체지향] 상속  (0) 2023.02.24
[객체지향] 내부클래스  (0) 2023.02.22
[ 객체지향 ] 생성자  (0) 2023.02.17