53장. 주석 상속
초록
Cryostat-RS 주석은 주석이 달린 인터페이스를 구현하는 하위 클래스 및 클래스에 상속될 수 있습니다. 상속 메커니즘을 사용하면 하위 클래스 및 구현 클래스가 상위에서 상속된 주석을 재정의할 수 있습니다.
53.1. 개요
상속은 개발자가 특정 요구 사항을 충족할 수 있는 일반 개체를 만들 수 있기 때문에 Java에서 더 강력한 메커니즘 중 하나입니다. Cryostat-RS는 클래스를 슈퍼 클래스에서 상속하기 위해 클래스를 매핑하는 데 사용되는 주석을 허용하여 이 기능을 유지합니다.
Cryostat-RS의 주석 상속도 인터페이스를 지원하도록 확장됩니다. 구현 클래스는 구현하는 인터페이스에 사용되는 Cryostat-RS 주석을 상속합니다.
Cryostat-RS 상속 규칙은 상속된 주석을 재정의하는 메커니즘을 제공합니다. 그러나 슈퍼 클래스 또는 인터페이스에서 상속하는 구문에서 Cryostat-RS 주석을 완전히 제거할 수 없습니다.
53.2. 상속 규칙
리소스 클래스는 구현하는 인터페이스에서 Cryostat-RS 주석을 상속합니다. 리소스 클래스는 확장되는 슈퍼 클래스의 모든 Cryostat-RS 주석도 상속합니다. 슈퍼 클래스에서 상속된 주석은 am 인터페이스에서 상속된 주석보다 우선합니다.
예 53.1. “주석 상속” 에 표시된 코드 샘플에서 Kaijin
클래스의 getMonster()
메서드는 Kaiju 인터페이스의 @Path
,@GET
, @PathParam
주석을 상속합니다.
예 53.1. 주석 상속
public interface Kaiju { @GET @Path("/{id}") public Monster getMonster(@PathParam("id") int id); ... } @Path("/kaijin") public class Kaijin implements Kaiju { public Monster getMonster(int id) { ... } ... }
53.3. 상속된 주석 덮어쓰기
상속된 주석을 재정의하는 것은 새 주석을 제공하는 것만큼 쉽습니다. 하위 클래스 또는 구현 클래스가 메서드에 대한 자체 Cryostat-RS 주석을 제공하는 경우 해당 메서드에 대한 모든 Cryostat-RS 주석이 무시됩니다.
예 53.2. “주석 상속 덮어쓰기” 에 표시된 코드 샘플에서 Kaijin
클래스의 getMonster()
메서드는 Kaiju 인터페이스에서 주석을 상속하지 않습니다. 구현 클래스는 @Produces
주석을 재정의하여 인터페이스의 모든 주석을 무시합니다.
예 53.2. 주석 상속 덮어쓰기
public interface Kaiju { @GET @Path("/{id}") @Produces("text/xml"); public Monster getMonster(@PathParam("id") int id); ... } @Path("/kaijin") public class Kaijin implements Kaiju { @GET @Path("/{id}") @Produces("application/octect-stream"); public Monster getMonster(@PathParam("id") int id) { ... } ... }