본문 바로가기

Backend Study/Java

[JAVA] 상속

1. 상속의 정의와 장점 

1.1 상속이란?

- 두 클래스를 조상과 자손으로 관계를 맺어주는 것이다.

- 자손은 조상의 모든 멤버를 상속받는다. (생성자, 초기화블럭 제외)

- 조상의 변경은 자손에 영향을 미치지만, 자손의 변경은 조상에 아무런 영향을 미치지 않는다.

- 자바는 단일 상속만을 허용한다. 

class child extends Parent{}

/* 허용하지 않음 */
class TVCR extends TV, VCR{  
}

2. Object 클래스

- 모든 클래스의 최고 조상이다.

- 조상이 없는 클래스도 자동적으로 Object 클래스를 상속받게된다.

- 모든 클래스는 Object 클래스에 정의된 11개의 메서드를 상속받는다. 

toString(), equals(Object obj), hashCode()

 

2.1 오버라이딩이란?

조상클래스로부터 상속받은 메서드의 내용을 상속받는 클래스에 맞게 변경하는 것

 

조건)

선언부가 같아야한다. (이름, 매개변수, 리턴타입)

접근제어자를 좁은 범위로 변경할 수 없다.

조상클래스의 메서드보다 많은 수의 예외를 선언할 수 없다.

 

2.2 오버로딩 vs 오버라이딩

class Parent {
	void parentMethod() {}
}

Class Child extends Parent {
	void parentMethod() {} //오버라이딩
    void parentMethod(int i) {} //오버로딩
    
   void childMethod() {} 
   void childMethod(int i){} // 오버로딩
}

오버로딩은 기존에 없는 새로운 메서드를 정의하는 것이고, 오버라이딩은 상속받은 내용을 변경하는 것이다.