자바에서 오버라이딩을 왜 사용하나요?
자바 상속에서 오버라이딩이라는 내용을 보았는데 자바에서 오버라이딩은 어떨때 사용하나요? 다른 이름으로 메소드를 만들어서 사용해도 되지 않나요? 인터넷에 있는 것보다 좀 쉽게 설명해 줄 수 있을까요?
정말 간단하게 말씀 드립니다.
public void 이딴거 손으로 일일히 치기 귀찮고, 시간이 아까워서 오버라이딩 하는거랍니다.
이미 만들어져 있는 기본 템플릿을 불러다 놓고 거기에 내용을 추가하는 것이죠.
onClickLisner만 해도 거의 필수적으로 들어가야 하는건데 저걸 일일히 치면 시간낭비죠.
저것만이고 아니고, 수두룩 할텐데 그걸 일일히 칠려면 시간 꽤나 걸릴껍니다.
자바에서 자식.class이 부모.class의 메소드나 속성등을
물려받을때 오버라이딩이라 합니다.
왜 오버라이딩을 쓰냐하면 편리성 때문입니다. 부모의 메소드를 물려 받고 쓸수 있는 부분은
쓰고 쓰지 않는 부분은 자식이 다시 재정의 해서 사용 합니다.
다른 이름의 메소드를 만들면 되는데 왜 그렇게 하느냐 중복로직을 피하고
공통부분은 물려받아 재정의 하여 쓰기 위함입니다.
이상입니다.
안녕하세요.
오버라이딩은 상속 개념에서 존재하는데요.
하나만 예를 들어 보겠습니다.
Printer 라는 객체를 만들고, 모델별로 Printer 객체를 상속받아 구현했다고 가정합니다.
하나의 모델만 print라는 메소드 내부의 프로세를 변경해야 할 일이 생겼는데요. 이럴 때 보통 오버라이딩으로 구현합니다.
하나의 메소드를 더 만들어 print2라고 선언해도 가능은 하나, print라는 같은 기능인데 print / print2라는 두 개의 메소드가 생기게 되며 사용자에 따라 print를 써야 할지, print2를 써야 할지 헷갈립니다.
또 해당 모델은 print를 사용하면 안되고 print2로만 print를 해야 할 때 오버라이딩을 하게 됩니다.
상속에 대한 개념부터가 필요합니다.
솔직히 다른이름으로 메소드 만들어서 사용해도 됩니다.
대학시절 텀프중에 상속/오버라이딩을 남발하여 사용했는데
교수님께서 배운거라고 억지로 쓸필요없다고 말씀해주신게 기억에 남네요ㅎㅎ
어쨌든 오버라이딩은 부모클래스의 함수를 재정의해서 사용하는것을 의미합니다.
검색해보면 뭐 개, 고양이, 돼지 클래스의 사운드 메소드를 쓰면 각기 소리내어 우는 그런 예가 나올것 같은데.
딱 그용도라고 보시면 됩니다. 현업에서 일하시다보면 아~ 이때 유용하겠구나 라는 감이 오실거에용