상속
1. 상속 -> 슈퍼클래스의 멤버들을 서브클래스가 가져오는 것!
-형식 public class Student extends Person {};
-방향 : 서브클래스가 슈퍼클래스를 접근
-슈퍼클래스는 여러 새끼 까는 것 가능하지만 서브클래스는 여러 부모를 두는 것이 불가능하다.
cf) 상속의 최상위 슈퍼클래스는 java.lang.Object클래스. 모든 클래스가 상속받는다.
-
Object 클래스 : java.lang 패키지에 속한 클래스이며 모든 클래스는 강제로 Object를 상속받는다. 아무 클래스도 상속받지 않는 최상위 클래스이다.
-
Object 클래스의 주요 메소드
- getClass() : 현 객체의 런타임 클래스 리턴
- boolean equals(Object obj) : obj가 가리키는 객체와 같으면 true 리턴
2. 슈퍼클래스와 서브클래스의 생성자 호출 및 실행
순서 : 서브클래스 생성자 호출 -> 슈퍼클래스의 생성자 호출 -> 슈퍼클래스의 생성자 실행 -> 서브클래스의 생성자 실행(최상위 클래스를 바로 가는 것이 아니라 한 단계씩 올라가면서 호출한다.)
-슈퍼클래스와 서브클래스는 생성자 오버로딩이 가능하다.
-서브클래스에서 슈퍼클래스의 생성자를 하나 선택한다.(선택 안하면 슈퍼클래스의 디폴트 생성자 선택)
-슈퍼클래스에 디폴트 생성자 마저 없다면 JVM이 자동으로 하나 생성해서 골라줌.
-서브클래스의 디폴트 생성자는 자동으로 슈퍼클래스의 디폴트 생성자와 매칭된다.
-서브클래스의 일반 생성자는 수동 매칭을 안 해주면 슈퍼클래스의 디폴트 생성자와 매칭된다.
-선택은 super() 메소드를 사용한다.
3. super()
-슈퍼클래스의 생성자를 수동 매칭. ex) super(x) 슈퍼클래스의 매개변수 개수에 따라 매칭.
-클래스의 첫 줄에 와야한다.(this()와 같음)
'Programming > Java' 카테고리의 다른 글
Troubleshoot #1 No enclosing instance of type ... is accessible (0) | 2020.06.11 |
---|---|
5장. 상속 #2 업/다운캐스팅 (0) | 2020.06.11 |
4장. 클래스와 객체 #5 접근지정자 #6 static과 non-static (0) | 2020.06.10 |
4장. 클래스와 객체 #3 객체 배열 #4 메소드 (0) | 2020.06.10 |
4장. 클래스와 객체 #2 this와 this() (0) | 2020.06.10 |
댓글