인터페이스
: 추상이랑 흡사한 개념
추상 같은 경우는 미리 어떠한 클래스 안에 어떠한 메소드가 사용이 될 것 이라고 암시를 해준다
즉, 추상적으로 어떠한 설계를 제공해주는 것
추상 클래스는 추상 메소드 외에 멤버 변수나 일반 메소드를 가질 수 있지만
인터페이스에서는 반드시 사전에 정의된 추상 메소드와 상수만을 가질 수 있다
인터페이스는 다중 상속을 구현하게 해줌
추상클래스보다 추상화의 정도가 높다
추상화의 정도가 높다는 것은 미리 구현하면 안되고 정말 설계만 함
팀프로젝트에서 동시 작업에 유리
인터페이스를 선언하고 메소드를 다루어봅니다.
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 |