-
JAVA 인터페이스카테고리 없음 2022. 10. 10. 03:05
인터페이스
인터페이스는 개발 코드와 객체가 서로 통신하는 접점 역할을 합니다. 개발 코드가 인터페이스의 메소드를 호출하면 인터페이스는 객체의 메소드를 호출시킵니다. 그렇기 때문에 개발 코드는 객체의 내부 구조를 알 필요가 없고 인터페이스의 메소드만 알고 있으면 됩니다.
인터페이스를 사용하는 이유는 개발 코드를 수정하지 않고 객체를 변경할 수 있도록 하기 위해서 사용합니다. 인터페이스는 하나의 객체가 아니라 여러 객체들과 사용이 가능하므로 어떤 객체를 사용하느냐에 따라서 실행 내용과 리턴값이 다를 수 있습니다. 따라서 개발 코드 측면에서는 코드 변경없이 실행 내용과 리턴값을 다양화할 수 있다는 장점을 가지게 됩니다.
클래스는 필드, 생성자, 메소드를 구성 멤버로 가지는데 비해 인터페이스는 상수 필드와 추상 메소드만을 구성 멤버로 가집니다.
인터페이스는 객체로 생성할 수 없기 때문에 생성자를 가질 수 없습니다.추상 메소드 선언
인터페이스를 통해 호출된 메소드는 최종적으로 객체에서 실행됩니다. 그렇기 때문에 인터페이스의 메소드는 실행 블록이 필요 없는 추상 메소드로 선언합니다.
인터페이스 구현
개발코드가 인터페이스 메소드를 호출하면 인터페이스는 객체의 메소드를 호출합니다.
객체는 인터페이스에서 정의된 추상 메소드와 동일한 메소드 이름, 타입 등을 가진 실체 메소드를 가지고 있어야하며 이러한 객체를 인터페이스의 구현객체라고합니다.
또한 구현객체를 생성하는 클래스를 구현 클래스라고 하며 인터페이스 타입으로 사용할 수 있음을 알려주기 위해 클래스 선언부에 implements 키워드를 추가하여 사용해야 합니다.
구현클래스가 작성되면 new 연산자로 객체를 생성할 수 있습니다.
인터페이스로 구현 객체를 사용하려면 인터페이스 변수를 선언하고 구현 객체를 대입해야 합니다.인터페이스 변수;
변수 = 구현객체;인터페이스 변수 = 구현객체; interfaceA a;
a = new object();interfaceA a = new object(); 다중 인터페이스 구현 글래스
객체는 다수의 인터페이스 타입으로 사용할 수 있습니다.
다수의 인터페이스가 객체의 메소드를 호출할 수 있으려면 객체는 여기 속하는 인터페이스를 모두 구현해야 합니다.
즉 다수의 인터페이스에 선언된 모든 추상메소드의 실체 메소드를 전부 작성해야 합니다.인터페이스 사용
클래스를 선언할 때 인터페이스는 필드, 생성자 또는 메소드의 매개 변수, 생성자 또는 메소드의 로컬 변수로 선언될 수 있습니다.