public class Ex51_interface {
public static void main(String[] args) {
Mouse m1 = new Mouse(); //인터페이스는 객체를 생성할 수 없다.
m1.click();
M705 m1 = new M705();
m1.click();
G304 m2 = new G304();
m2.push(); //***문제점 > 사용자 경험을 살리지 못했다.
m2.click();
}
}
//인터페이스 선언
interface Mouse {
//*****인터페이스는 구현된 멤버를 가질 수 없다.
//public int a;
//public void aaa() { }
//*****인터페이스는 구현부를 가진 메소드를 소유할 수 없다.
//public void aaa() {
//구현부
//}
//추상메소드, Abstract Method
//- 구현부 없이 선언부만 가지는 메소드
public void click();
}
//*** 인터페이스를 상속받는 클래스는 반드시 인터페이스의 추상 메소드를 구현해야 한다.
class M705 implements Mouse {
//추상메소드를 구현했다. > 일종의 오버라이드
public void click() {
System.out.println("클릭");
}
}
class G304 implements Mouse {
@Override
//꼭 public 으로 사용해야 함. 따라서, public 생략 가능
void click() {
System.out.println("클릭!");
}
}
클릭
클릭!