- 추상 클래스는 인스턴스(객체)를 만들 수 없다.(new 사용 불가)
- 추상 메서드는 하위 클래스에게 메서드의 구현을 강제한다.(오버라이딩 강제)
- 추상 메서드를 포함하는 클래스는 반드시 추상 클래스여야 한다.
클래스의 인스턴스, 객체를 만들 때마다 new 키워드를 사용한다.
동물 뽀로로 = new 동물();// 뒤의 소괄호는 매개변수가 없는 메서드(생성자) 호출
final 키워드가 나타날 수 있는 곳: 클래스, 변수, 메서드
객체참조변수 instanceof 클래스명
___
동물 동물객체 = new 동물();
System.out.println(동물객체 instanceof 동물); //true
이름공간을 만들어주는 역할
인터페이스: public 추상 메서드와 public 정적 상수만 가질 수 있음.
interface Speakable{
pulbic static final double PI = 3.14159;
public static final double zeroPoint = 275.15;
public abstract void say();
}
메서드에 public과 abstract, 속성에 public과 static, final을 붙이지 않아도 자바가 알아서 붙여주지만 명확히 작성해주는 것이 좋다.
객체가 자기 자신을 지칭할 때 쓰는 키워드
- 지역 변수와 속성(객체 변수, 정적 변수)의 이름이 같은 경우 지역 변수가 우선한다.
- 객체 변수와 이름이 같은 지역 변수가 있는 경우 객체 변수를 사용하려면 this를 접두사로 사용한다.
- 정적 변수와 이름이 같은 지역 변수가 있는 경우 정적 변수를 사용하려면 클래스명을 접두사로 사용한다.

class 펭귄{
int var = 10;
void test(){
int var = 20;
System.out.println(var);//20
System.out.println(this.var); //10
}
}
상위 클래스의 인스턴스를 지칭하는 키워드
super 키워드로 바로 위의 상위 클래스 인스턴스에는 접근할 수 있지만 상위의 상위 클래스의 인스턴스에는 접근이 불가능하다.(super.super 형태 불가)