- 강의
- 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에 너무 매몰되지 말자 !!!!
'슈퍼코딩 > 주특기(JAVA)' 카테고리의 다른 글
2024.05.06(월) 슈퍼코딩 신입연수원 6주차 Day 1 후기 - JVM (0) | 2024.05.06 |
---|---|
슈퍼코딩 신입연수원 5주차 후기 (0) | 2024.05.04 |
2024.05.02(목) 슈퍼코딩 신입연수원 5주차 Day 4 후기 - 다형성 (0) | 2024.05.02 |
2024.05.01(수) 슈퍼코딩 신입연수원 5주차 Day 3 후기- static, 상속 (0) | 2024.05.01 |
2024.04.30(화) 슈퍼코딩 신입연수원 5주차 Day 2 후기 - 정보은닉 (0) | 2024.04.30 |