- 추상 클래스는 인스턴스, 즉 객체를 만들 수 없습니다. 다시 말해, new를 사용할 수 없습니다.
- 추상 메소드는 하위 클래스에게 메소드 구현을 강제합니다. (Overriding 강제)
- 추상 메소드를 포함하는 클래스는 반드시 추상 클래스여야 합니다.
- 아무런 생성자도 만들지 않으면 자바는 인자가 없는 기본 생성자를 자동으로 만들어줍니다.
인자가 있는 생성자를 하나라도 만들면 자바는 기본 생성자를 만들어 주지 않습니다.
- 객체 지향 언어의 구성 요소인 클래스, 변수, 메소드에 붙을 수 있습니다.
- 클래스에 final이 붙는다면 상속을 허락하지 않겠다는 의미입니다.
- 변수에 final이 붙는다면 변경 불가능한 상수가 됩니다.
- 메소드에 final이 붙는다면 Overriding을 금지하게 됩니다.
Class 펭귄 {
int var = 10;
void test() {
int var = 20;
System.out.println(var); // 20
System.out.println(this.var); // 10
}
}
public class Driver {
public static void main(String[] args) {
펭귄 뽀로로 = new 펭귄();
뽀로로.test();
}
}
- 지역 변수와 속성(멤버 변수, 정적 변수)의 이름이 같은 경우 지역 변수가 우선합니다.
- 멤버 변수와 이름이 같은 지역 변수가 있는 경우 멤버 변수를 사용하려면 this를 접두사로 사용해야 합니다.
- 정적 변수(클래스 변수)와 이름이 같은 지역 변수가 있는 경우 정적 변수를 사용하려면
클래스명을 접두사로 사용해야 합니다.