상속은 연관된 일련의 클래스들에 대해 공통적인 규약을 정의할 수 있다.
코드의 재활용X
상속표시
클래스 이름 오른쪽에 extends + 상속하고자 하는 클래스의 이름
class Man {
String name;
public void tellYourName(){
System.out.println("My name is "+name);
}
}
class BusinessMan extends Man{ // 비즈니스맨 클래스가 맨 클래스를 상속한다
String company;
String position;
public void tellYourInfo(){
System.out.println("My company is "+company);
System.out.println("My position is "+position);
tellYourName(); // 메서드 호출
}
}
BusinessMan man = new BusinessMan();
BusinessMan 클래스에서 tellYourName 메소드를 호출하고있지만,
클래스내엔 이 메소드가 존재하지 않는다.
tellYourName 메소드는 Man 클래스에 위치한다.
그러나 오류가 발생하지 않음.
⇒ BusinessMan의 메소드에서는 Man 클래스의 메소드 뿐만 아니라 인스턴스 변수에도, 모든 멤버에 접근 가능하다
⚠ 주의할 사실!
같은 인스턴스에 존재한다고 할지라도, 만약 멤버를 priviate선언 해버리면 존재해도 접근을 못함