티스토리 뷰
반응형
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 |
.
--
--
--
--
반응형
'Web > JAVA' 카테고리의 다른 글
[JAVA] BufferedReader, InputStreamReader (0) | 2019.06.02 |
---|---|
[JAVA] StringBuilder (0) | 2019.05.30 |
[Java] 생성자(Constructor) (0) | 2019.04.25 |
[Java] 상속(inheritance) ,오버라이딩(overriding), 오버로딩(overloading) (0) | 2019.04.22 |
[Java] 클래스(class), 메소드(Method), Call By Value (0) | 2019.04.21 |
댓글