2016-07-21 2 views
-1

인터페이스를 구현할 때 추상 메소드 인 인터페이스 메소드 (Java 8 이하 버전 용)가 결과를 리턴 할 수있는 방법을 알고 싶습니다. 예를 들어Java 인터페이스 : 자바에서 inbuilt 인터페이스를 구현한다면 어떻게 인터페이스의 메소드 결과를 얻을 수 있습니까?

:

클래스의 경우, 또는 그 슈퍼 클래스 중 하나는, Cloneable 인터페이스는, 기존 개체에서 복사본을 만듭니다 복제() 메서드를 사용하여 구현합니다. 클론을 만들려면 다음과 같이 작성하십시오.

aCloneableObject.clone();

위의 예제에서 clone() 메서드는 메서드가 해당 복제 가능 인터페이스에 시그니처 만 있으면 어떻게 반환 할 수 있습니까?

예 2 : 왜 Cloneable을 인터페이스는이 방법 오버라이드 (override)되지 않는 것 경우에도 어떤 컴파일 타임 오류를 던지고되지 않은 위의 예에서

public class C implements Cloneable { 

    public static void main(String[] args) throws CloneNotSupportedException{ 
     C c = new C(); 
     c.clone(); 
    } 

} 

?

+0

인터페이스를 구현하는 경우 클래스가 추상 클래스가 아닌 경우 인터페이스에서 모든 메소드를 재정의 (구현)해야합니다. – Berger

+0

잘못되었으므로 구현 했습니까? – EJP

+0

당신이 무엇을 요구하고 있는지 분명하지 않습니다. 인터페이스의 메소드 서명의 일부는 반환 유형입니다. –

답변

0

해당 복제 메서드는 인터페이스를 구현하는 클래스에서 선언해야하기 때문에. 인터페이스 객체를 선언 할 수 없으며 인터페이스를 구현하는 클래스에 속한 객체를 항상 선언합니다.

잘못된

Interface myOBject = new Interface() 

오른쪽

Interface myOBject = new ClassThatImplementsTheInterface() 

ClassThatImplementsTheInterface 인터페이스를 구현하고 모든 메소드를 구현하는 클래스입니다.

+0

예제 2 참조하십시오. –

+1

안녕하세요 @ ShahidSarwar, 자바의 모든 클래스는 수퍼 클래스로 객체를 가지고 있습니다. 그래서 당신의 클래스 C는 Object의 자손입니다. Object는 clone()을 가지고 있으므로, 오버라이드하지 않으면 기본적으로 수퍼 클래스 (Object)의 메서드를 사용합니다. – SCouto

+1

고맙습니다 .. 설명서를 읽었으며 정확히 말한 것입니다! 고마워. –

관련 문제