OOP - Polymorphism(다형성)이란 무엇이며 왜 사용하는가?
[JAVA] 함수의 다형성(Polymorphism)과 오버로딩 & 오버라이딩
다형성이란 무엇인가?
OOP 다형성 (Polymorphism): 하나의 객체가 여러 형태를 가질 수 있는 능력을 말합니다. 동일한 메서드 호출이 객체의 타입에 따라 다른 동작을 수행하도록 합니다.
라고 교수닝이 말씀은 하셔도 그게 도대체 뭔데?
라는 생각이들고 물어보기엔 또 부끄럽고 그래서
속으로 끙끙앓던 기억이 있다
과거의나 너무 기죽지마!
자바는 메소드 오버로딩을 지원한다
라고 교수닝이 말씀은 하셔도 그게 도대체 뭔데?
라는 생각이들고 물어보기엔 또 부끄럽고 그래서
속으로 끙끙앓던 기억이 있다
과거의 나 너무 기죽지마!
자 이제 우리 위대한 ai에게 물어보면 이런답이 나온다
[
네, 자바는 메소드 오버로딩을 지원합니다. 메소드 오버로딩은 같은 이름의 메소드를 여러 개 정의할 때, 메소드의 매개변수(parameter)의 개수나 타입이 달라야 한다는 규칙을 따릅니다.
- 오버로딩할 메소드들은 모두 같은 이름을 가져야 합니다.
- 메소드 이름은 같지만, 매개변수의 개수나 타입이 달라야 합니다. 리턴 타입은 달라도 상관없습니다.
- 오버로딩된 메소드는 오직 매개변수에 의해서만 구분됩니다.
- 자바의 다형성(Polymorphism)을 구현하는 한 방법으로, 같은 기능이지만 매개변수에 따라 다른 동작을 하도록 할 수 있어 코드의 유연성을 높여줍니다.
- 동일한 기능을 수행하는 메소드를 여러 개 만들 필요 없이, 하나의 이름으로 다양한 방식으로 사용할 수 있어 코드의 가독성과 유지보수성을 향상시킵니다.
]
교실에서 한반의 학생이 30명인데
그중에서 세종대왕이라는 이름을 가진사람이 즉 동명이인이 있다
이둘을 선생님이 불러서 심부름을 시키거나 청소를 시키고자 한다
이때 여러분이 해야하는 방법은?
1.둘다 청소시킨다
2.둘중 하나만 골라서 청소시킨다
교실에서 한반의 학생이 30명인데
이 둘을 선생님이 30명의 학생을 말한마디로 다 불러서 심부름을 시키거나 청소를 시키고자 한다
이때 여러분이 해야하는 방법은?
1.청소해 라고 말한마디하여 30명의 다른인간을 움직인다
2.30명한명 한명씩 다 찾아가서 이름을 다 불러가며 역할을 다 정해준다
자바는 메소드 오버로딩을 지원합니다의 의미
=
선생님이 동명이인을 불러도 동명이인이
선생님이 동명이인을 계속만날때마다
별명을 계속 짓기는 귀찮으니
같은이름을 불러도
발음만 듣고도 반응하게 만들고 싶다
라는게 메소드 오버로딩이고
자바는 메소드 오버라이딩을 지원합니다의 의미
=
선생님이 바꿨다
근데 새로온 선생님의 이름이 과거 선생님과 이름이 같은 동명이인이다!
오! 이 무슨 놀라운 우연이!
근데 청소는 똑같이 해야된다!
근데 지금 선생님은 우리가 과거선생님의 방식으로 청소하는걸
맘에 안들어한다
어떻하지?
이때 새로온 선생님이 청소시작이라는 마법의 단어를
말해도 우리가 새로온 선생님의 마음에 들게 청소해야지 과거 선입선생님의
인터페이스는?
이 과정을 우리가 다 직접 구현할 필요는 없다
미리 고수들이 구현한 paho라이브러리를 사용하여 우리는 통신한다
우리 콜백메소드는
서버로 보내야하는데 서버는 만능이 아니고
모든 클래스를 인식할수가없다
그러니까 다형성이 여기서 필요한게
걸러내는거다 한번 추천인만 받아서 블로그개설이 가능하게 하는것
댓글
댓글 쓰기