형변환에서 인터페이스를 간단히 다루었지만 매우 중요한 부분이기에 이정도로는 충분치 않다고 판단하여 따로 한번 더 작성한다.
협업의 유용함
자바는 인터페이스를 이용하여 본인이 원하는 클래스를 선택하여 쓸 수 있다. 따라서 클래스를 개발해 놓으면, 다른 개발자가 그대로 개발하기에 아주 유용하다.
교체의 용이
개발이 안전하지 않은 방식이라고 판단될 경우, 클래스의 이름만 바
꿔주면 로직은 건드리지 않아도 된다.
다중상속
다중상속이 가능하기 때문에 여러 기능들을 구조적으로 표현할 수 있다.
복싱 프로그램을 주제로 한번 짜 보았다.
인터페이스 클래스 3개, 일반 클래스 2개를 생성했다.
package interfaces;
public interface boxing {
public void wibing();
}
package interfaces;
public interface jab {
public void jab();
public void left_jab();
public void right_jab();
}
```package interfaces;
public interface strike {
public void strike();
public void left_hook();
public void right_hook();
}
boxing,jab,strike 3개의 인터페이스 클래스 생성
package interfaces;
public class paquiao implements jab,strike,boxing{
private String pack_mam;
public paquiao(String pack_mam) {
super();
this.pack_mam = pack_mam;
}
@Override
public void wibing() {
System.out.println("피한다");
}
@Override
public void strike() {
System.out.println("강타");
}
@Override
public void left_hook() {
System.out.println("왼훅");
}
@Override
public void right_hook() {
System.out.println("오른 훅");
}
@Override
public void jab() {
System.out.println("쨉");
}
@Override
public void left_jab() {
System.out.println("왼손쨉");
}
@Override
public void right_jab() {
System.out.println("오른손쨉");
}
}
파퀴아오 클래스. 인터페이스의 클래스를 상속받아왔다.
package interfaces;
public class meywether implements jab,strike,boxing{
private String special_one;
public meywether(String special_one) {
super();
this.special_one = special_one;
}
@Override
public void wibing() {
System.out.println("회피");
}
@Override
public void strike() {
System.out.println("스트레이트");
}
@Override
public void left_hook() {
System.out.println("왼손 훅");
}
@Override
public void right_hook() {
System.out.println("오른손 훅");
}
@Override
public void jab() {
System.out.println("잽");
}
@Override
public void left_jab() {
System.out.println("왼손 잽");
}
@Override
public void right_jab() {
System.out.println("오른손 잽");
}
}
메이웨더 클래스. 마찬가지로 상속받아왔다.
구현한 결과이다. 인터페이스는 implements를 통해 상속받는다는 사실을 기억하자.
아주 중요한 정보를 얻었습니다, 감사합니다.