부모클래스에서 만들어진 필드, 메소드들을 자식클래스가 사용할 수 있도록 물려주는 것
public class Transportation{
...
}
public class Bus extends Transportation{
...
}
부모클래스 == 슈퍼클래스(super class) == 상위클래스
자식클래스 == 서브클래스(sub class) == 하위클래스
클래스 다중 상속을 지원하지 않는다.
public class Bus extends Transportation, Transfer{
...
}
상속 횟수는 무제한이다.
public class Bus extends Transportation{
...
}
public class Subway extends Transportation{
...
}
상속의 최상위에 존재하는 클래스는 java.lang.Object 클래스
모든 클래스는 자바 컴파일러에 의해 자동으로 java.lang.Object 클래스를 상속받기 때문에 선언할 필요가 없다.
수직간의 상속만 가능하고 수평간의 상속은 불가능하다.
Q : 서브클래스에서 객체가 생성될 때 서브클래스의 생성자와 슈퍼클래스의 생성자중 누가먼저 실행되나요? 아니면 객체가 생성되는 서브클래스만 실행이 되나요?
A : 둘 다 실행이 됩니다. 실행 순서는 슈퍼클래스의 생성자가 먼저 실행되고 다음에 서브클래스의 생성자가 실행이 됩니다. 호출은 서브클래스가 슈퍼클래스를 호출합니다.
Q :원하는 슈퍼클래스 생성자를 선택하지 않으면 자동으로 기본생성자를 찾는데 서브클래스에서 어떻게 슈퍼클래스의 생성자를 선택하나요?
A : super(슈퍼클래스 생성자의 매개변수) 를 사용하면됩니다.
서브클래스에서 명시적으로 슈퍼클래스의 생성자를 호출할 수 있게합니다.
반드시 서브클래스 생성자 코드의 가장 첫번째 라인에 와야합니다.
그렇지 않으면 호출이 되지 않습니다.
사용방법
super(parameter);