- 클래스간 중복 제거하기 위해 상속과 인터페이스
- 중복 제거 조건
- 1. 공통멤버를 가지는 클래스들 간의 공통점이 있는가?
- 2. is kind of 관계가 성립하는가?
- 중복 제거 조건
- 자식 클래스 인스턴스 처리 순서
- 상속한 부모클래스 먼저 생성
- 이후 자식클래스 생성
public class Employee{}
public class LMSTest{
public static void main(String[] args){
Employee e = new Employee();
}
}
- 스택에 생긴 e 에서 힙에 생긴 Employee에 접근
- 자식 클래스에서 this로 부모 클래스 멤버 변수에 접근가능
- super
- class A extends B
- A 클래스내에서 this == A, super ==B
- super는 상속받은 클래스의 모든 생성자 첫번째에 자동으로 생성됨
- final
- final 변수 : 초기화된 변수값 수정 못하게 제한
- final 메서드 : 오버라이딩 제한
- fianl 클래스 : 상속제한
- 추상 개념
- 추상 메서드 : public abstrct void method() 로 끝, {}로 시작하는 메소드 본문 작성하면 안됨
- 추상 클래스 : 하나 이상의 추상 메서드 포함
- 인터페이스 : 클래스 같이 속성과 기능을 가지는 객체는 아니고 다른 클래스에서 구현할 내용에 대한 설명서
- 필드 선언 : 무조건 public static final 자동으로 추가
- 메서드 선언 : public abstract 자동 추가
- defualt 메서드 선언 : 추상메서드 외에 본문을 갖는 메서드, public default 리턴 타입 메서드명(매개변수){실행문;}
- static 메서드 선언 : default와 같이 사용하지만 인스턴스 생성에 상관없이 사용가능
- priavte 메서드 선언 : default 메서드에서 사용할 목적으로 만듦