메인메소드가 있는 Program클래스 -> A클래스의 객체 a 참조 -> A클래스는 B클래스의 객체 b 참조
이러한 구조에서 특정 클래스가 미완성 or 누락상태일때
A에서 참조할 B클래스의 객체 b를 생성할 수 없으므로 오류가 발생
인터페이스 X를 만들고 B는 X를 implements함.
이렇게 인터페이스를 통해 다른 클래스와 결합시키면 내용물이 구현되어 있지 않아도 프로그램의 마감이 완성됨.
※ 인터페이스와 추상클래스의 차이
- 추상클래스는 일부 내용은 구현해도 O, 인터페이스는 전체 내용을 추상화함.
- 추상클래스는 다중상속이 불가능하나 인터페이스화하면 다중상속이 가능.
- 추상클래스의 목적은 부모클래스를 상속받아 기능을 확장
- 인터페이스의 목적은 특정메소드가 반드시 존재하도록 강제함으로써 결합시킬 클래스들의 동작을 규격화함.
'Java' 카테고리의 다른 글
JDBC 기본세팅(mySQL+aws) + SELECT Query 실행 (0) | 2021.12.01 |
---|---|
제네릭을 사용하는 이유 (0) | 2021.11.28 |
vscode야...넌 또 왜이러니... (0) | 2021.11.13 |
왜 객체변수명을 클래스명과 통일시키는가? (0) | 2021.11.09 |
OOP - 캡슐화 (0) | 2021.11.08 |