글쎄, 단단하게 질문을 공식화하면 더 잘 소화하는 데 도움이됩니다.
우리는 다음과 같은 사실로 누르고 있으면 : 인터페이스가 법적으로 단지 구현 된 인터페이스가 요구되는 방법에 인수로 전달 될 수있다 구현하는 클래스의
- 개체 (캐스팅없이?).
- 인터페이스 변수는이 인터페이스를 구현하는 클래스의 생성 된 객체를 유지할 수 있습니다. 명시 적 캐스팅없이 인터페이스 메소드에만 액세스 할 수 있으며 객체는 추가 메서드가있는 클래스 일 수 있습니다.
- 일단 키워드와 "인터페이스 생성자"키워드를 사용하여 인터페이스가 필요한 곳에서 익명 클래스의 객체를 생성하고 해당 인터페이스를 자동으로 구현할 수 있습니다.
그래서 것 같습니다 내 경우에는, 다음과 같은 코드가 :
setOnItemClickListener(new AdapterView.OnItemClickListener(){
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
....
}
});
가 자동 AdapterView.OnItemClickListener 인터페이스를 구현 인라인 겹쳐 인터페이스 onItemClick() 방법 및 setOnItemClickListener 함수에 객체를 전달하는 익명 클래스를 인스턴스화한다.
가도 명확하게하기 위해, 위의 코드를 쓸 수 있었다 :
class classDef implements AdapterView.OnItemClickListener{
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
....
}
}
classDef myClass = new classDef();
setOnItemClickListener(myClass);
감사합니다.
'이 인터페이스를 구현하는 모든 클래스의 객체를 인수로 전달할 수 있습니까? 예 – pskink
예, 다형성을 살펴보십시오. – Brunaldo