java024

제로·2022년 9월 18일
0

Java basic

목록 보기
24/45
post-custom-banner

인터페이스

  1. 개발 코드와 객체가 서로 통신하는 접점
    • 개발 코드는 인터페이스의 메서드만 알고 있으면 OK
  2. 인터페이스의 역할
    • 개발 코드가 객체에 종속되지 않게 객체를 교체할 수 있도록 하는 역할
    • 개발 코드 변경없이 리턴값 또는 실행 내용이 다양해질 수 있음(다형성)
  3. 인터페이스 안의 메서드는 모두 추상 메서드

인터페이스의 선언

  1. 인터페이스 이름 - 자바 식별자 작성 규칙에 의해서 대문자로 시작
  2. 소스 파일 생성 - 인터페이스 이름과 대소문자가 동일한 소스파일 생성
  3. 인터페이스 선언
    public interface 인터페이스명{...}

추상클래스와 인터페이스

  • 추상 클래스 안에는 일반 메서드와 추상 메서드를 모두 선언할 수 있지만 인터페이스 안에는 추상메서드만이 존재한다.

-추상클래스의 하위 클래스는 하나의 추상 클래스만 상속받을 수 있지만 인터페이스의 하위 클래스들은 여러개의 인터페이스를 받아 사용할 수 있다.

Robot r1 = new Robot();
r1.setWing(new Wing01());
r1.flying();


interface Wing{
	public void fly(); // abstract 생략
}

class Wing01 implements Wing{ // 인터페이스를 구현
	
    @Override
	public void fly() {
		System.out.println("날개1호를 통해서 우리 동네를 날다!");
	}
}

class Wing02 implements Wing{ // 인터페이스를 구현

	@Override
	public void fly() {
		System.out.println("날개2호를 통해서 전세계를 누비다!");
	}
}
 
 class Robot{
 	privatd Wing wing; // 인터페이스를 필드로 사용
    private void setWing(Wing wing){
    	this.wing = wing;
    }
    public void flying(){
    	if(this.wing!=null){
        	this.wing.fly();
     // 실제 객체가 할당되었을 때, 하위 객체가 override한 내용을 처리      
        }else {
        	System.out.println("날개가 장착되지 않았습니다.");
        }
    }
 }
profile
아자아자 화이팅
post-custom-banner

0개의 댓글