- 추상화 메서드를 통해 공동 작업 시 규격을 잡아주는 역할
- 모든 메소드가 추상메소드인 경우
- 인터페이스는 객체를 만들지 못한다.
- 인터페이스는 모든 메소드가 추상 메소드라서 abstract를 따로 붙이지 않는다!
- Main Class
package chapter06.exam03.inter;
public class Main {
public static void main(String[] args) {
Window win = new Window();
Linux linux = new Linux();
Mac mac = new Mac();
win.click(1);
win.dbClick(2);
linux.click(3);
linux.dbClick(4);
mac.click(5);
mac.dbClick(6);
//일반 메서드
mac.wheel(44);//인터페이스는 객체를 만들지 못한다.
//따라서 구현된 다른 클래스를 이용
//static 사용
MouseEvent.setDpi(50);
//Linux , Mac
//다형성 사용
MouseEvent mou = null;
mou = new Linux();
mou.click(1);
mou.dbClick(2);
mou = new Mac();
mou.click(3);
mou.dbClick(4);
mou = new Window();
mou.click(5);
mou.dbClick(6);
}
}
- MouseEvent Interface
package chapter06.exam03.inter;
public interface MouseEvent {
// 인터페이스에서는 추상메서드에서 abstract를 붙이지 않는다.
public void click(int btn);
public void dbClick(int btn);
public double[] move();
// 인터페이스에서는 일반 메서드를 사용할 수 없다.
// JDK 1.8 부터는 가능
// default 안붙이면 추상 메소드 라고 인식
public default void wheel(int i) {
if (i == 1) {
System.out.println("윗 방향으로 스크롤");
} else {
System.out.println("아랫 방향으로 스크롤");
}
}
public static void setDpi(int dpi) {
System.out.println("감도 조절 : "+dpi);
}
}
- Window MouseEvent 구현
package chapter06.exam03.inter;
//implements = 구현 / 구현은 인터페이스를 대상으로 한다.
public class Window implements MouseEvent {
@Override
public void click(int btn) {
System.out.println(btn+"번 버튼 클릭");
}
@Override
public void dbClick(int btn) {
System.out.println(btn+"번 버튼 더블 클릭");
}
@Override
public double[] move() {
return null;
}
}
- Mac MouseEvent 구현
package chapter06.exam03.inter;
public class Mac implements MouseEvent {
@Override
public void click(int btn) {
System.out.println(btn+" 번 버튼 클릭");
}
@Override
public void dbClick(int btn) {
System.out.println(btn+" 번 버튼 더블 클릭");
}
@Override
public double[] move() {
// TODO Auto-generated method stub
return null;
}
}
- Linux MouseEvent 구현
package chapter06.exam03.inter;
public class Linux implements MouseEvent {
@Override
public void click(int btn) {
System.out.println(btn+" 번 버튼 클릭");
}
@Override
public void dbClick(int btn) {
System.out.println(btn+"번 버튼 더블 클릭");
}
@Override
public double[] move() {
// TODO Auto-generated method stub
return null;
}
}
'JAVA' 카테고리의 다른 글
[JAVA] JPA란? (0) | 2021.09.09 |
---|---|
[JAVA] build (0) | 2021.03.24 |
[JAVA] 추상화 (0) | 2021.03.24 |
[JAVA] 다형성, 프로모션 (0) | 2021.03.24 |
[JAVA] 오버라이딩 (0) | 2021.03.24 |