원래의 점프 히트
실제로 코드 "인터페이스의 예를 들어"이 있음을 코드에서 볼 때 오늘, 무서워, 다음과 같이 코드는 다음과 같습니다
public class testCollections {
public static void main(String[] args) {
ArrayList<Integer> list1 = new ArrayList<>();
list1.add(2);
list1.add(6);
list1.add(3);
list1.add(5);
list1.add(1);
//Collections.sort(list1);
Collections.sort(list1,new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
return o1-o2;
}
});
System.out.println(list1);
}
}
그러나 우리가 분명히 이해해야하는 인터페이스와 추상 클래스는 새로운 것이 아니다, 이것은 할 수있는 방법이 문제에 오랫동안 인터넷 바이두는, 정말 좋은 조금을 설명하는 것입니다, 마지막으로 기사 설명을 발견 : 사실, 정말 인스턴스화하고 구현하는 인터페이스 및 인터페이스에 업 캐스팅 한 후 (기본 형식)을 새로운 객체 익명의 내부 클래스를받을 수 있도록 새로운 익명의 내부 클래스 그것을 구현이
아니라 (사실, 난 아직도 다시, 조금 이해하지 못했다 하나님 ASK 큰 찾기 위해 다음 읽기 그 아래) 첫 번째 기억되는
공통의 코드를보고 모든 사람을 보내기
tv1.setOnClickListener (새 OnClickListener를 () {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
}
});
볼 왼쪽에 언급 OnClickListener를, Ctrl 키 + 소스
에 공용 인터페이스 OnClickListener를 {
/ **
* 호출 전망이 클릭되었을 때.
*
파라미터 : 클릭보기의 V WAS.
* /
무효 온 클릭 (보기 V);
}
우리는 자바의 기초를 알고 배울 때, 인터페이스가 새를 OnClickListener를 위로 할 수있는 이유, 인스턴스화되지 않으며, 그것은 우리가 인터페이스를 인스턴스화 할 수없는 결국, 물어 보자했다. 답은 NO!
이 익명의 내부 클래스를 작성한다고 설명한다. 새로운 OnClickListener를은 () {} 정말 새로운 익명의 내부 클래스가 새로운 익명의 내부 클래스 업 캐스팅 인터페이스 (프리미티브)가 구현 것을 다시 얻기 위해 해당 객체를 인터페이스를 구현하는, 인스턴스화하지 않았습니다. 이러한 설명이 충분하지 않을 수 있습니다, 우리는 코드 조각을 살펴 보자 :
클래스에 myListener 구현 OnClickListener를 {
@Override
공공 무효 온 클릭 (보기 V) {
}
}
tv1.setOnClickListener (새위한 MyListener ());
이러한 방법으로 우리는 인터페이스가 더 이상 환상의 예를 볼 수 있기 때문에, 의심을 쓸 필요가 없다. 우리는 익명의 내부 클래스를 인스턴스화하는 생략하여 작성만을보고,이 클래스가 구현하는 인터페이스.