이 글은 자바의 익명 내부 클래스 요약 관련 정보를 주로 소개합니다. 도움이 필요한 친구들이 참고하시면 좋을 것 같습니다.
익명 내부 클래스는 자바의 익명 내부 클래스 요약입니다. 또한 이름이 없는 내부 클래스
이름이 없기 때문에 익명 내부 클래스는 일반적으로 코드 작성을 단순화하는 데 사용됩니다.그러나 익명 내부 클래스를 사용하려면 전제 조건이 있습니다. 상위 클래스를 상속해야 합니다. 인터페이스 구현예제 1: 추상 메소드 구현에 익명 내부 클래스를 사용하지 않음
abstract class Person { public abstract void eat(); } class Child extends Person { public void eat() { System.out.println("eat something"); } } public class Demo { public static void main(String[] args) { Person p = new Child(); p.eat(); } }
실행 결과:
eat someone
보시다시피 Child를 사용하여 Person 클래스를 상속합니다. 그런 다음 Child 인스턴스를 구현하고 이를 Person 클래스에 대한 참조로 업캐스트합니다
그러나 여기서 Child 클래스가 한 번만 사용된다면 독립 클래스로 작성하는 것이 번거롭지 않을까요? 이번에는 익명 내부 클래스가 도입되었습니다예제 2: 익명 내부 클래스의 기본 구현
public abstract void eat(); } public class Demo { public static void main(String[] args) { Person p = new Person() { public void eat() { System.out.println("eat something"); } }; p.eat(); } }
실행 결과:
eat Something
보시다시피 추상 클래스 Person을 직접 추가합니다. 메소드는 중괄호로 구현됩니다
이렇게 하면 클래스 작성을 생략할 수 있습니다 또한 익명 내부 클래스를 인터페이스에서 사용할 수도 있습니다예 3: 인터페이스에서 익명 내부 클래스 사용
interface Person { public void eat(); } public class Demo { public static void main(String[] args) { Person p = new Person() { public void eat() { System.out.println("eat something"); } }; p.eat(); } }
실행 결과:
eat Something
위의 예에서 볼 수 있듯이 클래스가 추상이거나 인터페이스인 한 해당 하위 클래스의 메서드는 익명 내부 클래스를 사용하여 구현할 수 있습니다
가장 일반적으로 사용되는 상황 멀티 스레딩 구현에 관한 것입니다. 멀티 스레딩을 구현하려면 Thread 클래스 또는 Runnable 인터페이스를 상속해야 하기 때문입니다예 4: Thread 클래스의 익명 내부 클래스 구현
public class Demo { public static void main(String[] args) { Thread t = new Thread() { public void run() { for (int i = 1; i <= 5; i++) { System.out.print(i + " "); } } }; t.start(); } }
Running 결과:
1 2 3 4 5
예 5: Runnable 인터페이스의 익명 내부 클래스 구현
public class Demo { public static void main(String[] args) { Runnable r = new Runnable() { public void run() { for (int i = 1; i <= 5; i++) { System.out.print(i + " "); } } }; Thread t = new Thread(r); t.start(); } }
실행 결과:
1 2 3 4 5
위 내용은 Java의 익명 내부 클래스 요약 및 공유의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!