인터페이스
InterfaceTest
class GraduateClass implements StudentInter, WorkerInter{
@Override
public void work() {
System.out.println("조교가 일하다. ");
}
@Override
public void study() {
System.out.println("조교가 공부하다. ");
}
@Override
public void eatLunch() {
System.out.println("조교가 점심을 먹다. ");
}
}
public class InterfaceTest {
public static void main(String[] args) {
GraduateClass stu = new GraduateClass();
StudentInter stu2 = new GraduateClass();
WorkerInter stu3 = new GraduateClass();
// 오른쪽이 하위(종속받는것), 왼쪽이 상위(물려주는것)
stu.eatLunch();
stu.study();
stu.work();
stu2.eatLunch();
stu2.study();
stu3.eatLunch();
}
}
WorkerInter (인터페이스 생성)
public interface WorkerInter {
/*public abstract 자동 선언*/
public abstract void work();
void eatLunch();
}
// overriding ; 접근 modifier는 같거나 더 넓을수 있다.
// public void work(){}; <- 오버라이딩시에는 접근제한자 반드시 붙여준다.
StudentInter (인터페이스 생성)
public interface StudentInter {
/*public abstract 자동 선언*/
void study();
void eatLunch();
}