6 인터페이스 인스턴스 : 자바 학습 기반? 아니, 사실, 그것은 속기 방법입니다

원래의 점프 히트
실제로 코드 "인터페이스의 예를 들어"이 있음을 코드에서 볼 때 오늘, 무서워, 다음과 같이 코드는 다음과 같습니다

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 ());

이러한 방법으로 우리는 인터페이스가 더 이상 환상의 예를 볼 수 있기 때문에, 의심을 쓸 필요가 없다. 우리는 익명의 내부 클래스를 인스턴스화하는 생략하여 작성만을보고,이 클래스가 구현하는 인터페이스.

게시 33 개 원래 기사 · 원 찬양 5 ·은 20000 +를 볼

추천

출처blog.csdn.net/qq_41623154/article/details/105124736