자바 의 인터페이스 와 실례 화

3199 단어 자바
문제 도입
        이틀 전에 프 록 시 모드 를 배 울 때 생각 났 는데 인터페이스 가 new 가 되 나 요?
        인 터 페 이 스 는 특수 한 추상 류 로 인터페이스의 방법 은 모두 기본 값 이다.  public  abstract  라 고 말 했다.추상 적 인 방법 은 new 가 될 수 없습니다. 예화 되 어 서 는 안 됩 니 다. 왜 new Action Listener () {} 가 가능 합 니까?더 이상 말 하지 않 고 자 료 를 직접 보다.
자료
        자바 는 여러 종 류 를 동시에 계승 할 수 없 지만 여러 인 터 페 이 스 를 계승 할 수 있 습 니 다.인 터 페 이 스 는 여러 종류의 변 형 된 계승 에 사용 할 수 있다.왜 new Action Listener () {} 이렇게 할 수 있 습 니까? 인터페이스 가 new 일 수 있 습 니까?new Action Listener () {} 이런 형식 은 {} 에서 인터페이스 에 다시 쓰 는 방법 입 니 다.인 터 페 이 스 는 new 가 되 지 않 지만 익명 류 를 만 들 수 있 습 니 다. 물론 익명 류 는 인터페이스 만 실현 하 는 것 이 아 닙 니 다.Action Listener 인 터 페 이 스 를 실현 하 는 구체 적 인 종 류 를 쓰 는 비용 을 생략 했다.
        인 터 페 이 스 는 new 로 직접 할 수 없 지만 다른 종류의 변수 로 사용 할 수 있 습 니 다.이 인 터 페 이 스 를 실현 하 는 클래스 가 있다 면 new!간단 한 예 를 들 어 자바. lang. List 는 인터페이스 이지 만 List < String > list = new Array List < String > ();Array List 가 List 인 터 페 이 스 를 실 현 했 기 때문에 오류 가 없습니다.인터페이스 프로 그래 밍 은 다 중 계승 을 실현 하기 위해 자바 웹 의 spring 프레임 워 크 에 많이 사용 된다.
간단 한 예
     。       ,     。
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
}
});

-------------------------------------------------------------------------------------------------------------------------
class Test {
  int start=1;
  int end=100;
  public static void main(String[] args) {
     new Test().go();
  }
  
  void go() {
      Runnable a=new Runnable() {
         public void run() {
            for(int i=start;i<end;i++)
              System.out.println(i);
         }
      };
      Thread t=new Thread(a);
      t.start(); 
  }
}

좋은 웹페이지 즐겨찾기