기존 클래스를 이용하여 새로운 클래스를 작성(부모와 자식 관계)
- 자손은 조상의 모든 멤버를 상속받음(생성자, 초기화 블럭 제외)
- 자손의 멤버 개수는 조상보다 적을 수 없음(자손>=조상)
- 자손의 변경은 조상에 영향 X
클래스의 멤버로 참조변수를 선언하는 것
- 상속: ~은 ~이다.
- 포함: ~은 ~을 가지고 있다.
상속받은 조상의 메소드를 자신에 맞게 변경하는 것
- 선언부 변경 X, 구현 부분만 맞게 변경
abstract class, 미완성 메소드를 가지고 있는 클래스
abstract method, 추상 메소드, {}(몸통)이 없는 미완성 메소드
인스턴스 생성 불가 (Player p = new Player(); -> 불가)
자손마다 다른 코드를 구현하기 위해 추상 메소드 사용
-> 상속을 통해 구현
- 추상 메소드의 집합, 구현된 것이 없는 설계도(모든 멤버가 public)
- 멤버의 public, static, final, abstract 모두 인터페이스 안에서는 생략가능
- 인터페이스의 조상은 인터페이스만 가능
- 다중상속 가능
- 인터페이스를 메소드의 리턴타입으로 지정 가능(반환타입이 인터페이스 Fightable이면 리턴값은 fightable을 구현한 객체를 반환해야함)