Published 2022. 11. 19. 20:07
  • 메서드는 같지만 동작 방식은 다르게 다형성을 주고 싶은 경우 사용.(interface, implements, abstract public 메서드, public static final 상수)
  • 다중 구현 가능
  • 협업시 객체의 내부 구조를 모르더라도 인터페이스의 메서드 명만 알면 사용 가능 => 협업에 유리
  • 모든 메서드가 구현부가 없는 추상메서드로 이루어진 메서드
//추상 메서드 선언
public interface RemoteControl{
	//상수
	public int MAX_VOLUME = 10;
    public int MIN_VOLUME = 0;
    
    //추상메서드(메서드 선언부만 작성)
    public void turnOn();
    public void turnOff();
    public void setVolume(int volume);
  }
  • 인터페이스에 선언된 추상 메서드는 모두 public abstract의 특성을 갖기 때문에 public abstract를 생략하더라고        컴파일 과정에서 자동으로 붙는다
//구현 클래스
public class Television implements RemoteControl{
	//필드
    private int volume;
    
    //turnOn() 추상 메서드의 실체 메서드
    public void turnOn(){
		System.out.println("TV를 켭니다");
      }
    //turnOff() 추상 메서드의 실체 메서드
    public void turnOff(){
		System.out.println("TV를 끕니다");
      }
      
     //setVolume() 추상 메서드의 실체 메서드
     public void setVolume(int volume){
      if(volume > RemoteControl.MAX_VOLUME){
       	this.volume = RemoteControl.MAX_VOLUME;
     }else if (volume < RemoteControl.MIN_VOLUME){
     	this.volume = RemoteControl.MIN_VOLUME;
     }else{
     	this.volume = volume;
       }
       System.out.println("현재 TV 볼륨:" + this.volume);
       }
     }
public class RemoteControlExample{
	public static void main(String[] args){
    	RemoteControl rc;
        rc = new Television();
        rc = new Audio();
       }
      }
  • 인터페이스 변수에 구현 객체 대입해서  이런식 으로 사용을 하게 된다.

'Java > 이론' 카테고리의 다른 글

[JAVA]캡슐화란?  (0) 2022.11.19
[JAVA]다형성이란?  (0) 2022.11.19
[JAVA]오버라이딩, 오버로딩 이란?  (0) 2022.11.19
[JAVA] 추상클래스란?  (0) 2022.11.19
[JAVA]자바(JAVA) 란?  (0) 2022.11.19
복사했습니다!