티스토리 뷰

Storage

[OOP] 오버로딩, 오버라이딩, 오버쉐도우: Overloading, Overriding, Overshadow

rhys
반응형

오버로딩(Overloading)

메소드명은 같고 인자값을 달리하여 사용하는 기법







오버라이딩(Overriding)

확장한 상위 클래스의 메소드를 재정의하는 기법





toString(); 메소드는 Object 클래스의 것입니다.

하지만 모든 클래스는 암시적으로 Object클래스를 확장하므로, 즉 그 클래스의 toString() 메소드를 사용할 수 있게 됩니다. 그 메소드를 자신의 입맛에 맞춰서 고칠수 있는데 이러한 기법을 오버라이딩이라고 합니다. 이 역시 다형성의 좋은 예로 볼 수 있습니다.





오버쉐도우(Overshadow)

상속관계에서 동일한 메소드명을 사용하는 경우 슈퍼클래스의 메소드는 오버라이드 되는데, 동일한 이름의 멤버 필드가 슈퍼클래스와 서브클래스에 있다면, 동일한 이름의 슈퍼클래스의 멤버필드는 오버쉐도우 되었다고 합니다. 오버쉐도우된 멤버 필드는 super 레퍼런스를 이용하거나, 서브클래스를 슈퍼클래스로 형변환해서 접근할 수 있습니다.




반응형

댓글