더 넓은 범위로 덮어쓰기가 가능함:
public-> public🅾️
public->private ❌

✅ 상속이란?
부모 클래스의 멤버를 자식 클래스가 그대로 사용할 수 있는 것 부모 클래스의 멤버를 자식 클래스가 상속(그대로 사용, 추가해서 사용하거나, ...) 받는 것: 확장한다 "extends" cf) 부모-자식, 상위-하위, 슈퍼-서브
public class Galaxy extends Phone{
//super() 부모 생성자를 호출하는 것!
public Galaxy(){
super(); //생략된 것
}
public static void main(String[] args) {
Phone galaxy = new Galaxy("Samsung");
galaxy.turnOn();
}
}


부모 클래스의 메소드의 매개 변수의 개수나 타입이 달라지면 override에 빨간줄이 생겨 컴파일 오류를 잡아줄 수 있다.
✅ 오버라이드란?
슈퍼 클래스로부터 상속받은 메소드의 내용을 변경하는 것
[조건]
- 접근제한 범위를 동일하게 두거나 또는 넓혀서
- 메소드 이름/매개 변수/반환 타입 동일
✅ 누군가 오버로딩과 오버라이딩의 차이를 물어본다면?
두 가지 비슷한 개념은 아니지만, 문법적으로 비슷한 것 같다.
차이: 상속 관련 유무, 오버로딩은 상속과 관련이 있지만, 오버라이딩은 상속과 관련이 없음.
오버로딩 -> 하나의 함수가 여러개의 매개 변수 타입을 받아서 처리하는 것
오버라이딩 -> 하나의 함수가 부모클래스로부터 상속받은 메소드를 확장에서 사용하는 것