2012-03-06 4 views
0

두 객체 참조가 동일한 객체를 참조하더라도 객체 참조와 객체 참조를 비교하는 것의 차이입니다.객체 참조 대 인터페이스 참조

개체가 무엇인지 모르겠다 referene 및 인터페이스 참조를 설명해 주시겠습니까?

+0

튜토리얼을 원한다고 생각합니다 ... 당신은 그것을 위해 google을 사용해야하고, 아무것도 찾을 수 없다면 몇몇 포럼에서 질문을해야합니다. –

답변

3

인터페이스를 사용하는 개체에 대한 참조가있는 경우 해당 개체 메서드 나 인터페이스에 정의 된 속성에만 액세스 할 수 있습니다. 추가 메소드에 액세스해야하는 경우 구현의 특정 유형을 식별하고 해당 메소드 또는 특성을 호출하기 전에 해당 유형으로 변환해야합니다.

실제 유형 대신 인터페이스 유형을 사용하는 것은 종종 객체 간의 결합을 줄이기 위해 수행됩니다. 예를 들어, 뭔가를 로깅하는 객체 중 하나가 ILogger의 인스턴스를 필요로 할 수 있지만, ILogger의 구현이 파일, 웹 서비스 또는 다른 작업을 수행하는지 실제로 신경 써서는 안됩니다. 인터페이스가 정의하는 계약 계약을 완전히 채우는 것에 관심을 가져야합니다.

1

난 당신이 올바르게 클래스의

개체 클래스의 전체 구현을 포함하는 인터페이스의 클래스의 객체와 객체 사이의 차이를 묻는 질문을 이해합니다. 모든 public 메소드를 호출하고 해당 클래스의 public 필드를 클래스 객체를 통해 사용할 수 있습니다.

반면 인터페이스 개체는 인터페이스로 정의 된 메서드와 필드 만 노출합니다. 당신이 당신의 객체의 유형을 알고

0

한 경우이며 모든 메서드에 액세스 할 수 있습니다 이런 식으로 (그래서 클래스 개체는의 인스턴스입니다). 다시 강조하겠습니다. 당신은 객체의 클래스를 알고 있습니다.

두 번째 경우는 개체가 인터페이스를 구현한다는 사실 만 알면 개체가 어떤 클래스인지 알 수 없습니다. 이렇게하면 특정 인터페이스에서 클래스가 상속하는 메소드에만 액세스 할 수 있으며 다른 메소드는 사용할 수 없습니다.

0

실제로는 매우 간단합니다. 객체 참조에 액세스 할 때 인터페이스 참조를 사용하면 해당 객체 클래스에 의해 구현 된 해당 인터페이스 정의의 일부인 메소드에만 액세스 할 수 있습니다.

클래스 참조로 액세스하면 클래스의 일부인 모든 요소에 액세스 할 수 있습니다. 인터페이스를 사용하면 해당 클래스에서 구현 된 인터페이스 방법과 관련되고 싶지, 그 객체의 실제 클래스가 무엇을 걱정하지 않는다, 그래서 당신은 만 액세스 할 수와 실제로

..