/*인터페이스
* 1. 기본적으로 모든 메소드가 추상 메소드로 정의된다.
* 2. 일반 메소드를 정의하기 위해서는 default 키워드를 사용하여야 한다
* 3. 생성자 정의는 불가능하다.
* 4. 변수 선언이 불가능하다
* 5. 상수는 선언할 수 있다.(접근지정자 public 사용)
public interface Power {
public void on();
public void off();
}
public class Computer implements Power{
@Override
public void on() {
System.out.println("컴퓨터의 전원을 켭니다");
}
@Override
public void off() {
System.out.println("컴퓨터의 전원을 끕니다");
}
}
같은 인터페이스를 가진 객체들은 해당 인터페이스로 Upcasting 될 수 있다.
public class Main {
public static void main(String[] args) {
Computer computer = new Computer();
LED led = new LED();
Speaker speaker = new Speaker();
centralControl centralControl = new centralControl(computer, led, speaker);
각 객체의 자료형은 Computer, LED, Speaker이지만 해당 클래스는 Power라는 공통 인터페이스를 갖고 있어서
power를 받고 있는 centralControl에 변수로 들어갈 수 있다
'Java 기초 수업' 카테고리의 다른 글
<Java> static (0) | 2022.11.03 |
---|---|
<Java> Entity Class, Service Class, required constructor (0) | 2022.11.03 |
<Java> 추상화, 추상클래스 (0) | 2022.10.31 |
<Java> 접근지정자와 캡슐화 (0) | 2022.10.27 |
<java> class (0) | 2022.10.26 |