static 메소드는 super, this 사용불가
String, Integer 등 클래스는 final 클래스로 상속 불가
final(상수의 의미) 메소드는 오버라이딩(재정의) 불가
추상 클래스(abstract 클래스)
abstract 클래스는 선언만 있고 정의가 없는 하나 이상의 추상 메서드를 갖는 클래스
하위 클래스에서 재정의할 것으로 예상되는 메서드에 대해 메모리 낭비 없이 미리 호출 계획을 세워 두기 위해 작성
클래스가 적어도 하나의 추상 메서드를 포함할 때, 그 클래스는 클래스명 앞에 abstract 키워드를 붙여 추상 클래스로 명시해야 한다.
abstract는 final, static과 같이 사용할 수 없다.
추상클래스는 미완성된 클래스이므로 객체 생성할 수 없다.
자식이 없는 추상클래스는 존재할 수 없다.
추상 클래스는 반드시 하위 클래스가 존재하고, 하위 클래스를 통해서만 객체 생성가능
인터페이스(interface)
클래스를 위한 템플릿으로서의 기능을 수행하는 추상 클래스의 한 종류
인터페이스는 interface라는 키워드를 사용하여 선언하며, 메서드 시그니처와 상수 선언(static과 final이 둘 다 선언되는 변수 선언)만을 포함
인터페이스 필드는 public static final만 가능
필드는 public static final을 붙이지 않아도 public static final이 자동 생성된다.
인터페이스 메서드는 public abstract만 가능
interface : 선언만 있고 정의가 없는 abstract 클래스의 일종
인터페이스 구현
인터페이스를 구현한 클래스에서는 추상클래스가 아닌 경우 인터페이스의 모든 메서드를 정의해야 한다.
인터페이스를 구현한 경우 인터페이스와 구현 클래스는 상하관계이다.
인터페이스는 추상클래스의 일종으로 객체 생성이 불가능
인터페이스의 필드는 final이므로 변경 불가
클래스는 2개 이상의 인터페이스를 구현할 수 있다. 다중 상속이 되지 않는 것을 보안
추상클래스는 인터페이스의 모든 메서드를 구현하지 않아도 된다.
추상클래스는 객체 생성이 불가능 - 하위클래스가 존재해야 한다.
인터페이스 특징
클래스간의 결합도를 낮출 수 있다.
표준화가 가능하다.
개발시간을 단축할 수 있다.
static 메서드
JDK 8부터 가능. 인터페이스명을 이용하여 바로 접근
default 키워드를 이용한 메서드 구현 (인스턴스 메서드 개념)
JDK 8 부터 가능. 구현 클래스에서 재정의 가능
static 중첩 클래스
외부 클래스의 객체 생성과 상관없이 객체를 생성할 수 있는 class
컴파일하면 외부 클래스명$중첩클래스명.class(Test1$User1.class) 파일이 생성
내부 클래스(member class)
외부 클래스의 객체를 생성되어야 객체를 생성할 수 있는 클래스
'Study > 쌍용' 카테고리의 다른 글
자바 예외 처리(2) (0) | 2022.07.29 |
---|---|
자바 예외 처리(1) (0) | 2022.07.28 |
자바 오버라이딩 & 캐스팅 (0) | 2022.07.26 |
자바 상속 & super (0) | 2022.07.25 |
자바 기본 API 클래스(2) (0) | 2022.07.23 |