본문 바로가기

JAVA

자바 기초 8 (인터페이스)

인터페이스

: 추상이랑 흡사한 개념

추상 같은 경우는 미리 어떠한 클래스 안에 어떠한 메소드가 사용이 될 것 이라고 암시를 해준다

즉, 추상적으로 어떠한 설계를 제공해주는 것

추상 클래스는 추상 메소드 외에 멤버 변수나 일반 메소드를 가질 수 있지만

인터페이스에서는 반드시 사전에 정의된 추상 메소드와 상수만을 가질 수 있다

 

인터페이스다중 상속을 구현하게 해줌

추상클래스보다 추상화의 정도가 높다

추상화의 정도가 높다는 것은 미리 구현하면 안되고 정말 설계만 함

팀프로젝트에서 동시 작업에 유리 

 

 

 

인터페이스를 선언하고 메소드를 다루어봅니다.

 

Dog.java

public interface Dog {


  abstract void crying();

  public void show();
  /*public void show() {
       System.out.println("Hello world");
  이런식으로 인터페이스 안에 직접적인 코드를 작성하면 안됨*/
  
}

Main.java

public class Main implements Dog{

  public static void main(String[] args) {

    Main main = new Main();
    main.crying();
    main.show();  
  }

  public void crying(){
    System.out.println("왈!");
  }

  public void show(){
    System.out.println("Hello World");
  }
 // 함수를 Main.java에서 전부 구현해줘야한다

}

 

 

인터페이스의 다중 상속에 대하여 학습합니다.

 

Dog.java

public interface Dog {


  abstract void crying();
  public void one();
  // one이라는 메소드 추가
}

Cat.java

public interface Cat {


  abstract void crying();
  public void two();
  
}

Main.java

public class Main implements Dog, Cat{

// 추상은 하나의 클래스에서는 두 개 이상의 클래스를 상속 받을 수 없다 그래서 Dog, Cat 이런식은 불가능
// 하지만 인터페이스는 다중 상속 처럼 가능
    public class Main implements Dog, Cat{} 이런식으로 가능하다


  public static void main(String[] args) {

    Main main = new Main();
    main.crying();
    main.one();
    main.two();
  }


  public void crying(){
    System.out.println("왈!");
  }


  public void one(){
    System.out.println("One!");
  }


  public void two(){
    System.out.println("Two!");
  }
  // Override 를 해줘서 설계도의 모든 메소드를 implements 해줘야함
}

 

'JAVA' 카테고리의 다른 글

자바 기초 10 (객체 (Object) 지향의 활용)  (0) 2021.10.14
자바 기초 9 (다형성)  (0) 2021.10.14
자바 기초 7 (추상, Final 키워드)  (0) 2021.10.14
자바 기초 6 (상속)  (0) 2021.10.13
자바 기초 5 (클래스)  (0) 2021.10.13