버글버글
Java 수업 기록 (14) 상속-Interface 본문
반응형
▶ Interface
(인터페이스의 뿌리는 추상 클래스이다.)
- 그래서 abstract 보단 interface가 더 많이 사용된다.
1. 클래스가 구현해야 할 메소드를 선언해 둔 자바 파일
2. 작업지시서 역할을 수행
3. 인터페이스 구현은 implements 키워드를 이용
4. 인터페이스를 구현하는 클래스는 반드시 인터페이스의 모든 추상메소드를 오버라이드 해야 함
5. 인터페이스를 작성하는 추상메소드는 abstract 키워드를 생략 할 수 있음
(인터페이스 내부에서는 abstract로 인식함. 심지어 public도 생략이 가능함)
* 인터페이스는 추상 메소드를 담을 수 있는 ..?
6. 인터페이스 구현은 아래와 같이 한다.
형식 및 구성 (JDK 1.8버전 이상부터 아래와 같이 사용 된다) |
public interface 인터페이스명 { 상수 추상메소드 default 메소드 private 메소드 static 메소드 } |
예시)
public interface A {
public void a(); // public abstract void a();
public void b(); // public abstract void b();
public default void c() {}; // public void c() {};
}
public class B implement A {
@Override
public void a() {};
@Override
public void b() {};
}
A obj = new B();
obj.a();
obj.b();
obj.c();
클래스는 상속받는거고
인터페이스는 구현하는거다.
* 부모가(Super Class) 2개 일때 예시
public class phone {
}
public interface Computer {
}
public class SmartPhone extends Phone implements Computer {
}
// 클래스만 두개 상속 받는것은 안됨
// 그래서 1개는 interface로 처리 해 준다.
예시2)
public abstract class Phone {
public abstract void call();
public abstract void sms();
}
public interface Computer {
public void game();
public void internet();\
}
// 상속(extends) 먼저, 구현(implements) 나중
public class SmartPhone extends Phone implements Computer {
@Override
public void call() {
System.out.println("전화기능");
}
@Override
public void sms() {
System.out.println("문자기능");
}
@Override
public void game() {
System.out.println("게임기능");
}
@Override
public void internet() {
System.out.println("인터넷기능");
}
public class Main {
public static void main(String[] args) {
Phone p1 = new SmartPhone();
p1.call();
p1.sms();
((Computer) p1).game();
((Computer) p1).internet();
System.out.println();
Computer p2 = new SmartPhone();
((Phone) p2).call();
((Phone) p2).sms();
p2.game();
p2.internet();
System.out.println();
SmartPhone p3 = new SmartPhone();
p3.call();
p3.sms();
p3.game();
p3.internet();
}
}
* 인터페이스 같은 경우는 갯수 제한 없이 구현 할 수 있다. (부모 클래스는 1개)
Cloneable 이라는 interface가 있다. 인터페이스가 있는데 본문이 비어져 있다.
* 기타사항
클래스에서 인터페이스 구현하기
1. 클래스 생성시 인터페이스 추가하기
최초 1회는 인터페이스 검색을 해줘야 한다.
이렇게 생성 할 시에, Override가 다 되어서 나온다.
반응형
'java > java 수업 기록' 카테고리의 다른 글
Java 수업 기록 (16) Collection Framework - ArrayList (0) | 2022.08.08 |
---|---|
Java 수업 기록 (15) Exception (0) | 2022.08.07 |
Java 수업 기록 (13) 라이브러리 - Bean (0) | 2022.08.04 |
Java 수업 기록 (12) 상속-abstract (0) | 2022.08.03 |
Java 수업 기록 (11) Object (0) | 2022.08.02 |