아 이게 뭐임!

인터페이스가 뭐임!! [JAVA]

마로가마따 2021. 6. 28. 14:05

Contents

-       인터페이스가 뭐임!

-       인터페이스 왜씀?

-       인터페이스 어케씀!

-       ..이게 인터페이스…?

 

인터페이스란?

● 동일한 목적 하에 동일한 기능을 수행하게끔 강제하는 것

● 구현된 것은 아무것도 없는 밑그림만 있는 기본 설계도

● 다른 클래스를 작성할 때 틀을 제공하면서, 다른 클래스 사이의 중간 매개 역할까지 담당하는 일종의 추상클래스

● 클래스들이 구현해야 하는 동작을 지정하는 용도로 사용되는 추상자료형

● 추상 매소드의 집합으로 미완성된 설계도

● 미리 정해진 규칙에 맞게 구현하도록 표준을 제시한다

 

 

인터페이스의 장점

● 여러명이서 작업을 할 때 미리 인터페이스를 작성함으로써 메소드를 정할 수 있다

● 다중상속을 통한 이점을 누릴 수 있다

● 확장에는 열려있고 변경에는 닫혀있는 클래스간의 결합도(코드 종속성)를 낮춘 유연한 방식의 프로그래밍이 가능하다

● 개발코드가 인터페이스의 메서드를 호출하면 인터페이스는 객체의 매서드를 호출한다. 객체의 내부구조를 알 필요가 없고, 인터페이스의 메서드만 알면된다

● 개발코드를 수정하지 않고, 사용하는 객체를 변경할 수 있다

● 코드 변경없이 실행내용과 리턴 값을 다양화 할 수 있다(다형성)

● 서로 관계없는 클래스들에게 관계를 맺어줄 수 있다.

 

 

 

인터페이스 선언

Public interface 인터페이스명 {

          

}

인터페이스 작성

인터페이스에서는 상수, 추상메소드, 디폴트메소드, 정적메소드를 선언할 수 있다.

.Public interface 인터페이스명 {

           // 상수

           (public static final) 타입 상수명 = ;

 

           // 추상 메소드

           (public abstract) 타입 메소드명(매개변수, …);

 

           // 디폴트 메소드

           Default 타입 메소드면(매개변수, …){

                     // 구현부

           }

           // 정적 메소드

           Static 타입 메소드명(매개변수, …){

                     // 구현부

           }

}

 

인터페이스 구현

인터페이스는 직접 인스턴스를 생성할 수 없다. 그래서 인터페이스를 구현하는 것은 클래스에 implements 하여야한다. 인터페이스를 구현하기 위해서는 정의된 모든 추상메소드를 구현해야한다.

 

Public class 클래스명 implements 인터페이스명 {

                   

}

Public interface ExampleInterface {

           Void method1(int x); // 추상메소드

}

Public class Example implements ExampleInterface {

           method1(int x){ // 추상메소드 구현

                     return x;

           }

}

 

인터페이스 다중상속

인터페이스는 다중상속이 가능하다. 부모클래스는 전부 인터페이스여야한다.

Interface FirstInterface { // 1번 인터페이스

           Void move(int x, int y);

}

 

Interface SecondInterface { // 2번 인터페이스

           Void run(int x, int y);

}

Interface Player extends FirstInterface, SecondInterface { } // 2개의 인터페이스를 상속받은 인터페이스

public class Warrior implements Player{

           public void move(int x, int y){ // 1번인터페이스에서 정의된 추상메소드

                     return null;

           }

           public Void run(int x, int y){ // 2번인터페이스에서 정의된 추상메소드

                     return null;

           }

}

 

상속과 인터페이스 구현이 동시에 가능하다

Class 클래스명 extends 부모클래스명 implements 인터페이스명 {

           // 인터페이스에 정의된 추상메서드 구현

}

 

인터페이스 이해

● 인터페이스는 특정 기능을 구현하기 위한 필수 규격을 주는 것

● 코드 종속성을 낮추어 클래스간 영향을 미치지 않는 독립적인 프로그래밍이 가능하다.

● 여러 개발자가 동시에 프로젝트를 진행할 수 있어서 개발속도가 빨라진다.

반응형

'아 이게 뭐임!' 카테고리의 다른 글

자바스크립트 시간 가져오기(시간 찍기)  (0) 2021.07.02
REST API가 뭐임!!  (0) 2021.07.02
Servlet이 뭐임!!  (0) 2021.07.01
PuTTY가 뭐임!!  (0) 2021.06.30
SVN이 뭐임!!!!  (0) 2021.06.29