[Java]

자바 개념(익명클래스)

ho-bolt 2021. 9. 10. 15:39

익명 클래스(이름이 없는 클래스)

현재 new Animal()은 생성자이고 void move()는 메소드이다. 

이 void move()를 덮고 있는 {}는 클래스인데 앞에 클래스명이 없고 생성자가 있다. 

이렇게 이름이 없는 것을 익명 클래스라고 하며 이름이 없기 때문에 또 객체를 생성할 수 없기 때문에 

하나의 객체만을 위한 클래스이다. 메모리낭비를 줄일 수 있다. 

이러한 익명클래스는 일반적인 클래스에서 사용하기 보다는 인터페이스나 추상클래스를 객체화할 때 보통 사용한다. 

이렇게 Animal클래스가 추상일경우 재정의를 해주어야 하기 때문에 위의 Animal dog=new Animal()를 자동완성시켜주면 Anonmyous inner Type이 뜨면서 무조건 재정의를 해주어야 한다. 

 

만약 implements하지 않고 추상클래스인 Animal 객체를 매개변수로 넘겨준다면 그 객체는 구현되서 넘어올 것이라

기대한다 따라서 추상클래스의 메소드를 사용할 수 있다.!

728x90