[java] 자바 상속(inheritance)

dhjo ㅣ 2020. 4. 19. 17:17

상속(inheritance)

: 기존의 클래스로부터 새로운 클래스를 유도하는 과정.

-부모 클래스를 extends로 상속받아 자식 클래스에서 내 것처럼 사용할 수 있는 것.

-A클래스가 B클래스에 정의된 필드와 메소드를 사용할 수 있도록 만드는 것.

A클래스 == 부모클래스,슈퍼클래스

B클래스 == 자식(extends)클래스,서브클래스

* 자바에서 모든 클래스는 Object라고 하는 클래스를 상속받는다.(이는 아무것도 상속받지 않은 클래스도 포함된다.)

 

<상속을 사용하는이유>

 

1. 소스코드를 반복해서 쓸 필요가 없다.

 

2. 클래스 간 계층 분류 및 관리의 간편화

 

ex)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
class Vehicle{
    public int speed;
    
    public int getSpeed() {
        return speed;
    }
    public void setSpeed(int speed) {
        this.speed = speed;
    }
}
 
class Car extends Vehicle{
    
}
 
public class Test {
    public static void main(String[] args) {
        Car A = new Car();
        A.getSpeed();
    }
}
 

 

위 코드에서 선언한 Car 클래스에는 getSpeed 메소드가 없지만,

상속된 Vehicle에 getSpeed 메소드가 있기 때문에 사용이 가능하다.

(class Car extends Vehicle{} 부분)