본 포스팅은 기본 문법 정리를 포함하지 않습니다.
상위 클래스에서 넘겨준 기능을 하위클래스가 받아서 사용할때
하위 클래스 단에서 필요에 맞게 기능을 수정하는 것을 의미합니다.
오버라이딩을 할때는 다음과 같은 조건(메소드의 서명)을 충족시켜야합니다.
부모 클래스의 메소드와 자식 클래스의 메소드가 중복될때는
상위클래스의 메소드를 호출하는 super()을 이용하여 중복을 제거해줍니다.
이름은 같지만 서명이 다른 메소드를 중복해서 선언할 수 있는 것을 의미합니다.
오버로딩된 메소드는 자바단에서 매개변수의 타입이나 갯수에 따라
어떤 메소드를 호출할 지 판단합니다.
다만 서명중에서 리턴타입
을 달리하면 오류가 발생합니다.
리턴타입은 호출시점에서 전달되지 않기 때문에
자바가 메소드를 구별할 수 없기 때문입니다.
컴파일 시 클래스 파일은 클래스 하나당 한개씩 생성됩니다.
만약 한 클래스가 다른 한 클래스를 참조하는데, 이 둘이 같은 디렉토리에 위치하고 있지않으면 다음명령어를 통해 참조 클래스의 위치를 지정하여, 가상머신에게 알려줍니다.
java -classpath ".;참조되는 메소드의 class파일이 위치한 디렉토리명" 메인 class명
같은 이름을 가진 클래스의 충돌을 막기위해 사용됩니다.
코드 상단에 디렉토리 이름과 똑같은 패키지를 호출하여 사용한다.