[ 인터페이스(***) ]
자식클래스들이 가져야 할 기능들의 목록을 갖음(뼈대역할,기본틀)
상수와 추상메소드들로 이루어진다.(jdk8.0이상에서는 default메소드기능이 추가됨)
만드는 형식
interface 인터페이스명{
상수;
추상메소드();
default 리턴형 메소드명(){ 실행코드;...}
}
-인터페이스는 객체를 생성할 수는 없지만 자식객체를 참조할 수는 있다.
-사용이유)
1. 자식클래스가 가져야 할 기능들의 뼈대를 제공
2. 클래스에서는 다중 상속이 지원되지 않지만 인터페이스는 다중상속이 가능하다.
3. 인터페이스를 적절히 사용함으로써 유지보수가 수월해 진다.
interface Shape{
double PI=3.141592; //상수선언 public static final 생략가능
public abstract void draw();
void paint(String color); //public abstract 는 생략가능
}
class Rect implements Shape{
public void draw() {
System.out.println("사각형을 그려요");
}
public void paint(String color) {
System.out.println(color+"색상으로 사각형을 칠해요");
}
}
class Circle implements Shape{
public void draw() {
System.out.println("타원그리기");
}
public void paint(String color) {
System.out.println(color+"색상으로 타원을 칠해요");
}
}
public class Test01_인터페이스 {
public static void main(String[] args) {
Rect r=new Rect();
r.draw();
r.paint("빨강");
System.out.println(Shape.PI);
Circle c=new Circle();
c.draw();
c.paint("노랑");
}
}