티스토리 뷰

Web/JAVA

[JAVA] 인터페이스(Interface)

Aaron 2019. 4. 26. 00:17
반응형


1. 인터페이스(Interface)

인터페이스는 클래스들이 그 기능을 서로 다르게 구현할 수 있도록 하는 클래스의 규격 선언

- 클래스의 다형성을 실현하는 도구

- 특징

 1. 멤버는 추상 메서드와 상수만으로 구성

 2. 모든 메서드는 abstract public이며 생략 가능

 3. 상수는 public static final 타입이며 생략 가능

 4. 인터페이스는 객체를 생성할 수 없음

 5. 다른 인터페이스에 상속 가능

 6. 인터페이스 타입의 레퍼런스 변수는 선언 가능


-- Teacher.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
public class Teacher {
    public void teach(ClassOne classone) {  
        System.out.println("teach " + classone.getTeach());
    }
    
    public static void main(String[] args) {
        Teacher teacher = new Teacher();
        Std_m stdm = new Std_m();
        Std_eng stdeng = new Std_eng();
        teacher.teach(stdm); // teach math
        teacher.teach(stdeng); // teach eng
    }
}
 
cs


-- ClassOne.java  (interface class)

1
2
3
public interface ClassOne {
    public String getTeach();  // 인터페이스의 메서드는 이름과 입출력에 대한 정의만 있고 내용은 없음
}
cs


-- Student.java

1
2
3
4
5
6
7
public class Student {
    String name;
    
    public void setName(String name) {
        this.name = name;
    }
}
cs


-- Stu_eng.java

1
2
3
4
5
6
public class Std_eng extends Student implements ClassOne{
    // Student 클래스의 객체이자 ClassOne 인터페이스의 객체
    public String getTeach() {
        return "eng";
    }
}
cs

-- Stu_m.java

1
2
3
4
5
6
public class Std_m extends Student implements ClassOne {
    // Student 클래스의 객체이자 ClassOne 인터페이스의 객체
    public String getTeach() {
        return "math";
    }
}
cs



.

--

--

--

--


반응형
댓글
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday