상속(inheritance) - 중간 저장
상속, 기존의 클래스를 재사용해서 새로운 클래스를 작성하는 것.
상속를 사용하게 되면 적은양의 코드로 공통적으로 관리할 수 있다. (코드의 추가 변경 매우 용이)
ex) class brother extends father{ //현재 클래스의 이름은 brother 이고 상속받고자하는 클래스 이름은 father이다.
...
}
상속해주는 클래스를 조상클래스, 상속받는 클래스를 자손 클래스라고 한다.
예를 들면 father 클래스에 man 이라는 int형 변수를 가지고 있다. 그런데 내가 brother 클래스에서 이 변수를 다루고 싶을 때
class father{
int man
}
class brother extends father{...}
이러면 brother 이라는 현재 클래스 안에 father 이라는 클래스가 상속 되어져서 man 변수를 다룰 수 있게 된다.
단, brother 클래스에 어떤 메서드나 변수를 생성해내는 코드를 적어놓으면 father클래스에는 영향을 미치지 못한다.
접근제어자가 private , default인 멤버들은 상속은 되나 자손클래스로부터의 접근이 제한되는 것.
또 초기화블럭이나 생성자는 상속 되지 않아.
여기서 소스코드에서 보면 inher이 조상클래스이며 sub가 자손클래스다. 각자의 클래스에서 참조없이 코드를 적었지만 inheritance 클래스에서 보면 sub클래스의 인스턴스를 만들어서 조상클래스인 inher 클래스의 변수를 참조하는 것을 볼 수 있다. 즉, 인스턴스를 생성하면 조상클래스의 멤버와 자손클래스의 멤버가 합쳐진 하나의 인스턴스로 만들어진다.
과제
1.오브젝트 클래스
2. 예제 다시 적어서 설명하는 글 주석달아서 올리기