슈퍼코딩/주특기(JAVA)

2024.05.03(금) 슈퍼코딩 신입연수원 5주차 Day 5 후기 - 추상 클래스, 인터페이스

곰돌이볼 2024. 5. 3. 08:40
  • 강의
    • 35강 ~ 38강

추상화


  • 필요한 특징만 모아두는 것
  • JAVA의 코드 추상화 : 공통 부분을 정의해 코드 중복을 중이고 다형성 실현
  • Java에서 추상화 제공 : 추상 클래스, 인터페이스

추상 클래스(Absctract) 


  • 하위 클래스의 공통적인 변수, 메소드를 정의한 클래스
  • 선언 : abstract class
  • 상속 : extends
  • 특징
    • 인스턴스화 X
    • abstract 없는 메서드는 구현 가능
    • abstract 메서드 선언만 함, 구현 X → 하위 클래스에서 구현되어야 함
    • 업캐스팅(강제 형변환) 가능
    • 하나만 상속 가능

인터페이스(Interface) 


  • 객체 간의 소통이 가능하도록 설계한 기능 구현을 설계하는 추상화 문법
  • 선언 : interface
  • 상속 : implements
  • 자동선언
    • 변수 → 자동으로 static final 추가됨
    • 메서드 → 자동으로 public abstract 추가됨
  • 특징
    • 인스턴스화 X
    • static 메서드 선언 O
    • 하위 클래스에게 메서드 구현의무 부여
    • 업캐스팅(강제 형변환) 가능
    • default 선언 시 메서드 구현 가능 → 구현 X
    • 여러 개 상속 가능(interface1, interface2 ... → 상속받는 class)
  • 두 인터페이스에 동일한 default 메서드 선언한 후 상속을 경우
    • 구체 클래스에는 @Override 선언해서 구현(필수)
    • 구체 클래스에서 인터페이스의 default 메서드 사용하는 방법
      • { interface }.super.{ method }

인터페이스와 추상클래스 비교


  • Interface
    • 특정 역할, 직업
    • ~ 할 수 있는, ~ 하는
  • Abstract class
    • 상위 분류 개념
    • ~에 속하는, ~ 상위 개념인
비교 Abstract class Interface
공통점 - 추상클래스
- 하위 클래스에 추상 메소드 구현 필수
- 인스턴스화 X
차이점 - 추상 메서드, 멤버 변수, 메서드 상속 가능
- 상속 : extends 키워드
- 단일 상속
- 추상 메서드, 상수 상속 가능
- 상속 : implements 키워드
- 다중 상속

 

 

!!!! OOP에 너무 매몰되지 말자 !!!!