728x90
[ 익명 클래스 ]
- 별도의 클래스를 만들지 않고 인스턴스 생성과 동시에 오버라이딩 수행
- 일회성 오버라이딩이라고 할 수 있음
본래 한 클래스에 있는 메소드를 오버라이딩 하기 위해서는 다른 클래스에서 상속 후 오버라이딩 해야합니다. 하지만 일회성으로 오버라이딩을 하기 위해 상속받은 클래스를 새로 만드는 것은 매우 비효율적입니다. 이럴 경우 인스턴스 생성과 동시에 필요한 부분을 오버라이딩 하는 방법이 익명 클래스입니다.
문법은 간단합니다. 클래스 하나를 인스턴스로 만들고 대괄호를 열고 닫아서 필요한 부분을 오버라이딩 하면 됩니다. 대괄호 뒤에는 세미콜론(;)이 붙어야 합니다. 오버라이딩만 가능하고 새로운 메소드를 추가할 수는 없습니다.
package study.first;
public class Study {
public static void main(String[] args) {
Test t = new Test() {
void print() {
System.out.println("익명 클래스에서 오버라이딩");
}
};
t.print();
t.test();
}
}
class Test {
int a = 1;
String b = "abc";
void print() {
System.out.println("부모 클래스 print 메소드");
}
void test() {
System.out.println("부모 클래스 test 메소드");
}
}
728x90
'▸JAVA > 기본 문법' 카테고리의 다른 글
래퍼 클래스 (Wrapper Class) (2) | 2019.12.10 |
---|---|
열거형 클래스 (Enum Class) (251) | 2019.12.10 |
내부 클래스 (Inner Class) (2) | 2019.12.10 |
가변 길이 인수로 메소드 정의하기 (2) | 2019.12.10 |
2차원배열_생성/초기화/사이즈변경/출력 [2/2] (2) | 2019.12.10 |
댓글