(kotlin) Override & Overloading

박용석·2023년 7월 17일
0
post-custom-banner

오버라이딩 (단축키 - Ctrl + O)
부모 클래스의 정보를 재설계할 수 있다.
상속받은 부모 클래스의 정보(프로퍼티)나 행위(메소드)를 재설계할 수 있다.
주로 부모 클래스의 행위(메소드)를 재설계
이러한 행위를 오버라이딩(Overriding)이라 한다.

오버라이딩을 하는 이유
공통적인 내용을 부모 클래스에서 관리하는건 좋지만, 자식클래스의 개성을 살리고
싶은 경우

어차피 재설계하는 거면 상속이나 오버라이딩을 사용할 이유?
OOP관점에서는 클래스들간의 관계를 만들고, 일관성을 유지하는 목표
만약 필요한 기능이 있을때마다 별도의 이름으로 만들게되면 일관성을 헤침
프로그램에 문제가 생기지는 않지만 재사용성이 떨어져 유지보수가 어려움

오버로딩
동일한 이름의 메소드를 여러 형태로 만들 수 있다.
매개변수의 갯수를 다르게하면 동일한 이름으로 메소드를 만들 수 있다.
매개변수의 자료형을 다르게하면 동일한 이름으로 메소드를 만들 수 있다.
반환자료형(반환형)은 오버로딩에 영향을 주지 않는다.

오버로딩이 필요한 이유
두 개의 정수를 매개변수로 받아 더하는 메소드를 add라는 이름으로 만든다.
하지만 두 개의 실수(소수)를 매개변수로 받아 더하는 메소드도 만들어야 한다.
더하는거니까 add라는 이름이 적합한데 어떻게 할까
addInt, addDouble 이렇게 메소드를 따로 만드는건 나중에 관리하기가 힘들다.
이 상황에서는 더해야하는 자료형이 정수, 실수로 다르니까 오버로딩으로 해결한다.

profile
슬기로운 개발 활동
post-custom-banner

1개의 댓글

comment-user-thumbnail
2023년 7월 17일

덕분에 좋은 정보 얻어갑니다, 감사합니다.

답글 달기