변수에 적용
블록에 적용
메소드에 적용
- 객체를 사용하지 않고 클래스.메소드 이름으로 적용하여 사용
Math.random()
static(){} // 여러번 호출해도 한 번만 실행됨
자바는 다중 상속을 지원하지 않으므로 인터페이스를 사용해서 다중 상속을 구현
다른 클래스를 작성할 때 기본이 되는 틀을 제공하면서 다른 클래스 사이의 매개 역할을 담당하는 일종의 추상 클래스와 비슷
인터페이스는 추상 메소드와 상수만을 포함할 수 있음 → 인스턴스 메소드, static 메소드도 포함(jdk8~)
접근제어자 interface 인터페이스이름 {
타입 상수이름 = 값; // public static final 타입 변수명으로 JVM이 자동으로 변환
public 반환형 메소드명(매개변수1,배개변수2); // abstract를 작성하지 않아도 JVM에서 자동으로 붙여줌
}
접근제어자 class 클래스이름 implements 인터페이스이름{} // 구현 방법
접근제어자 class 클래스이름 extends 부모클래스이름 implements 인터페이스이름{} // 상속 방법
접근제어자 class 클래스이름 extends 부모클래스이름 implements 인터페이스이름1, 인터페이스이름2{} // 여러개 상속 방법
클래스에서 사용, 상속할 수 없게됨
final class 부모클래스명{}
class 자식클래스명 extends 부모클래스명{ // 에러}
변수에서 사용, 값을 재할당 할 수 없음
final String str = "apple";
str = "banana"; // 에러
메소드에서 사용, 오버라이딩 불가
class 부모클래스명{
final String method1(){
return 값
}
}
public class 자식클래스명 extends 부모클래스명{
String method1(){ // 에러
return 값2
}
}