JAVA

210818_익명내부클래스

요옫 2021. 8. 18. 12:06

(예제)

//클래스 선언과 객체생성을 동시에 하는 이름없는 클래스(일회용)

//이벤트 발생시 생성했다가 끝나면 메모리에서 제거됨(메모리 관리 효율적)

abstract class AbstEx{  //추상메서드

abstract public void show();

}

 

 

class OuterEx{  //외부클래스

 

//익명내부클래스

AbstEx ab=new AbstEx() {

 

@Override

public void show() {

System.out.println("익명내부클래스");

}

};

}

 

public class AnonyInnerEx05 {

 

public static void main(String[] args) {

 

 

OuterEx ex=new OuterEx();

ex.ab.show();  //외부클래스참조변수명.익명내부참조변수명.메서드명

}

}

 

//결과

익명내부클래스

 

 

~~~~~~~~~~~~~~~~~~~

 

 

(예제)

abstract class AbstEx1{

abstract public void writeA();

abstract public void writeB();

}

 

class Abst{

 

//익명내부클래스

AbstEx1 abstEx1=new AbstEx1() {

 

@Override

public void writeB() {

System.out.println("B 출력");

 

}

 

@Override

public void writeA() {

System.out.println("A 출력");

}

};

}

 

public class AnonyInnerEx06 {

 

public static void main(String[] args) {

Abst ab=new Abst();

ab.abstEx1.writeA();

ab.abstEx1.writeB();

}

}

 

//결과

A 출력

B 출력

'JAVA' 카테고리의 다른 글

210818_Exception  (0) 2021.08.18
210818_익명내부클래스+상속  (0) 2021.08.18
210818_내부클래스  (0) 2021.08.18
210817_스캐너+다향성+switch  (0) 2021.08.17
210817_Abstract+배열  (0) 2021.08.17