abstract
자손 클래스에서 반드시 재정의해서 사용되기 때문에 조상의 구현이 무의미한 메서드
- 메서드의 선언부만 남기고 구현부는 세미콜론(;)으로 다체
- 선언부에 abstract추가
- 클래스 선언부에도 abstract추가
- 글래스에 구현부가 없는 메서드가 있으므로 객체를 생성할 수 없음
- abstract를 사용함으로써 자손 클래스에서 재정의 강제
인터페티스
최고 수준의 추상화 : 일반 메서드는 모두 abstract 형태
클래스와 다른 점은 인터페이스는 다중 상속이 가능
인터페이스의 필요성
- 구현의 강제로 표준화 처리
- 인터페이스를 통한 간접적인 클래스 사용으로 손쉬운 모듈 교체 지원
- 사로 상속의 관계가 없는 클래스들에게 인터페이스를 통한 관계 부여로 다형성 확장
- 모듈 간 독립적 프로그래밍 가능 ----> 개발 기간 단축
default method
메서드 선언부에 default modifier 추가 후게 메서드 구현부 작성
필요성
- 기존 인터페이스 기반으로 동작하는 라이브러리의 인터페이스를 추가해야하는 기능이 발생
- 기존 방식대로라면 추가되는 메서드를 override 해야함
- default 메서드는 abstact가 아니므로 반드시 구현해야 할 필요는 없음
static method
- interface에 선언된 static 메소em
- 일반 static 메서드와 마찬가지로 별도의 객체가 필요 없음
- 구현체 ㅡㄹ래스 없이 바로 인터페이스 이름으로메서드에 접근 가능
class C implements A extends B -->에러
class C extends B implements A--->이게 맞음
interface A
interface B
interface C extends A,B -----> O
----------------------------------------
class A{}
interface B extends A ------>X
'[JAVA]' 카테고리의 다른 글
Polymorphism (0) | 2023.01.21 |
---|---|
Inheritance + @ (0) | 2023.01.21 |
Abstraction + @ (추상화와 그 외의 중요한 것들) (0) | 2023.01.17 |
NullPointerException (0) | 2022.12.22 |
discord로 IntelliJ하는거 티내는 방법 (0) | 2022.12.21 |