swimminginthecode DIVE!

BACK/JAVA Basic

JAVA 09

dazz6 2024. 4. 12. 17:32
인터페이스란
추상 메소드와 상수로 구성된 클래스로, 다중 상속이 가능하며 인스턴스할 수 없는 클래스

Package Explorer Interface icon


인터페이스 선언
접근제한자 interface 인터페이스이름 {}

구현 클래스
접근제한자 class 클래스이름 implements 인터페이스이름 {}

인터페이스에서 정의된 추상 메소드를 오버라이딩하는 클래스


추상 클래스와 인터페이스

 

구분 추상클래스 인터페이스
공통점 객체 생성 객체를 생성(인스턴스화)할 수 없다
추상 메소드 추상 메소드를 포함한다
기능적 목적 상속받는 클래스에서는 추상 메소드를 반드시 재정의하여 구현해야 한다
차이점 개념적 목적 상속받아서 기능을 확장시키는 데 목적이 있다 구현 객체의 동일한 실행 기능을 보장하는 데 목적이 있다
클래스 abstract class, 클래스다 interface, 클래스가 아니다
일반 메소드 일반 메소드 정의가 가능하다 일반 메소드 정의가 불가능하다 (특이사항*)
멤버 변수 클래스와 동일하게 변수 선언 및 사용이 가능하다 상수만 사용 가능하다
상속 키워드 extends implements
다중 상속 불가능 가능

* 특이사항

Java8 이후 static, default 메소드는 정의 가능

 

출처 https://hahahoho5915.tistory.com/70


내부 클래스란
특정 클래스 내에서 클래스를 선언하여 사용하는 것

내부 클래스를 사용할 때 주의할 점

클래스에서 내부 클래스 안 멤버를 호출할 때는 내부 클래스를 명시해 주어야 한다

public class Classname {
    private Innerclass inner;
    
    public Classname() {
    	inner = new Innerclass();
        inner.a = 3;
    }
    
    public class Innerclass {
    	private int a;
    }

 

 

-> Classname 클래스 안에 있는 Innerclass 클래스 멤버인 a 변수

     Innerclass 클래스 외부에서 호출하기 위해서는 a 변수 앞에 출처(inner.)를 적어 줘야 함

'BACK > JAVA Basic' 카테고리의 다른 글

JAVA 11  (0) 2024.04.17
JAVA 10  (0) 2024.04.15
JAVA 08  (0) 2024.04.11
JAVA 07  (0) 2024.04.05
JAVA 06  (0) 2024.04.04