this를 통한 생성자 접근(호출)
- 생성자 내부에서 this가 ()와 함께 시용되면,
- 현재 객체 내부의 또 다른 생성자를 호출한다.
- 반드시 생성자의 첫 라인에서 호출해야 한다.
method override : method overriding : 메소드 덮어 쓰기 : 메소드 재정의
- 부모 타입에 선언된 메소드를 자식 타입에서 재정의 하는 것
- 부모 타입에 선언된 메소드와 이름, arguments 같아야 한다
- method overriding된 메소드는 호출 될 때, 자식 타입에 재정의된 메소드가 호출된다
- method overriding을 사용하는 이유? & 장점
- -> 자식 타입의 객체에 통일된 메소드를 두어서, 부모 타입에서도 자식 타입 고유의 메소드를 실행할 수 있다
- -> 부모 타입의 변수로 접근 불가능한 자식 타입의 고유 영역에 접근 가능하다
Polymorphic Arguments : 다형성 응용
- Arguments의 자리에 부모 타입의 변수를 사용하면,
- 모든 자식 타입의 객체를 가져올 수 있다.
super : 부모를 지칭하는 키워드
- 자식에서 부모의 변수를 호출하고 싶을 때 : super.변수;
- 자식에서 부모의 메소드를 호출하고 싶을 때 : super.부모메소드();
- super가 자식의 생성자에서 ()와 함게 쓰이면, 부모의 생성자를 호출
- super()는 생성자의 첫째 라인에서만 사용될 수 있다.
has a relationship : 멤버루 다른 객체를 소유할 수 있다.
- instance는 instance를 가질 수 있다.
- 객체는 객체를 가질 수 있다.
- 클래스는 클래스를 가질 수 있다.
- 예) 자동차 객체는 엔진 객체를 갖는다.
Access Modifires : 접근 제한자
- class, 변수, 메소드에 대해서 접근 권한(보안) 등을 제한하는 역활
- class의 경우는 public, default만 가능
- 변수, 메소드의 경우는 public, protected, default, private 모두 가능
- public : 누구나 접근 가능
- protected : 같은 패키지(폴더) 안의 class에서만 + 상속 관계의 class에서만 접근 가능
- default : 같은 패키지(폴더) 안의 class에서만 접근 가능, 접근 제한자 자리에 아무 것도 없는 것
- private : 같은 class 내부에서만 접근 가능