
인터페이스는 추상 클래스만 가질 수 있다.
즉 heap에 띄우지 못한다는 소리.

abstract를 안적어도 알아서 인식함.
인터페이스는 다형성을 만족하지 않아도 된다.

추상클래스는 implements로 상속할 수 있다.
Add unimplemente methods 를 누르면 자동으로 잡아준다.

이게 기본 문법이다.

스타크래프트로 예시를 들겠다.
공통점을 빼서 메서드 만들었다. 질럿과 드라군은 프로토스종족, 마린과 탱크는 테란종족이다.
질럿과 드라군한테 공격명령을 내리면 내부 코드가 실행 될 것이다. ( 질럿 드라군 리버 싸움 참조 )
게임을 해보면 알겠지만, 우리가 공격명령을 내릴때 attack(z1.m1) 이런식으로 코드를 입력해서
공격명령을 내리진 않는다 .
공격명령을 내릴땐 a키만 누르면 해당 유닛 공격하러 가는것이다. 이걸 인터페이스라 한다.
인터페이스는 사용자가 편하게 작동시키라고 만들어내는 것이다.
전자레인지를 작동시킬때 버튼을 누르지 우리가 직접 내부를 조작하지 않는것처럼.

이런방식에는 인터페이스를 적용하지 않는다.
왜냐? 공격이라는 행위를 뽑아내서 작성만 하면 되기 때문에.

라면 클래스와 김치찌'개' 클래스를 만들었다.
두개를 인터페이스로 조작하게 만들고 싶은데 어떻게 명령을 내려야 할까?
둘의 공통적인 행동인 음식을 하는 행위가 있다.

인터페이스로 음식해 라고 코드를 만들었다.

이런식으로 오버라이드 시키면 된다.
안에 void들을 지우면 안된다. ( 메서드 자체가 없으면 안됨 )

출력하는 모습
'캠퍼스 > Java' 카테고리의 다른 글
| 49.ArrayList (0) | 2022.08.08 |
|---|---|
| 48. 제네릭 (0) | 2022.08.08 |
| 46. 추상 클래스 (0) | 2022.08.07 |
| 45.생성자 오버로딩 (0) | 2022.08.07 |
| 44.라이브러리 (2) (0) | 2022.08.07 |