상속
기존의 클래스로 새로운 클래스를 작성하는 것 (코드 재사용)
두 클래스를 부모 자식으로 관계를 맺어주는 것
자손은 조상(부모 뿐 아니라 부모의 부모 등)의 모든 멤버들을 상속 받는다 (생성자, 초기화 블럭 제외)
자손의 멤버 개수는 조상보다 적을 수 없음 (같거나 많음)
자손의 변경은 조상에 영향을 미치지 않음
속을 받으면 부모 멤버 자식 멤버가 합쳐짐
자손의 변경은 영향을 안미치지만 부모의 변경은 영향을 줌
상속예제
Car.class
package course_0926;
public class Car {
int speed; //속도
public void setSpeed(int speed) {
//속도 변경 메소드
this.speed = speed;
}
}
HTML
복사
SportsCar.class
package course_0926;
public class SportsCar extends Car{
boolean turbo;
public void setTurbo(boolean flag){
turbo = flag;
}
}
Java
복사
SportsCarTest.class
SportsCar.class
package course_0926;
public class SportsCarTest {
public static void main(String[] args) {
SportsCar obj = new SportsCar();
//부모 클래스의 필드와 메소드 사용
obj.speed = 10;
obj.setSpeed(60);
obj.setTurbo(true); //자체 메소드 사용
}
}
HTML
복사
super() 조상의 생성자 // 참조변수 super 와 관련없음
조상의 생성자를 호출할 때 사용
상속에서 생성자,초기화블록은 상속되지 않음!
조상의 멤버는 조상의 생성자를 호출해서 초기화
조상의 멤버를 자손의 생성자가 초기화를 하지말고 자신이 선언한 값만 선언하자
조상의 생성자 추가조건 (매우중요!!!!)
생성자의 첫줄에는 반드시 다른? 생성자를 호출해야 함
그렇지 않으면 컴파일러가 생성자 첫 줄에 super();를 삽입