Swift | overloading & override 헷갈리는 이슈

일어나 개발해야지·2024년 1월 3일

Swift

목록 보기
5/21

Intro

overloading & override 이 느므 헷갈린다

둘다 함수 앞에 붙는 키워드이다보니

한쪽을 의식하면 한쪽을 까먹는 상황이 발생

이 김에 정리해보자

Overloading :

①"과적하다" 라는 의미
② 동일한 범위 내에서
③ 함수의 이름을 재사용하는 것
④ 형태가 다르면 OK (파라미터의 Type)!

func add(_ a: Int, _ b: Int) -> Int {
    return a + b
}

func add(_ a: Double, _ b: Double) -> Double {
    return a + b
}

Overloading 사용의 이점

비슷한 성격의 함수를 하나의 이름으로 설정해서,
함수 호출시 필요한 형태만을 고려해서 사용할 수 있기 때문에
개발자의 가독성과 편의성이 올라감
↓ ↓ ↓
파라미터의 타입을 고려해서
여러개의 함수를 선언하고 (같은이름으로)
사용할때 골라쓰는 느낌

Override :

① "재정의" 한다는 의미
② 상속이 발생할때 생겨나는 개념
③ 상위 클래서에 있는 메서드를 하위 클래스에서 새롭게 구현하는 것을 의미

class Shape {
    func draw() {
        print("Drawing a shape")
    }
}

class Circle: Shape {
    override func draw() {
        print("Drawing a circle")
    }
}

정리

이제 그만헷갈리기 !

class A {
    func doSomething(){
        print("기본함수")
    }
    
    //Overloading
    func doSomething(num: Int){
        print("No(\(num).기본함수")
    }
    
    
}

class B:A {
    //Override
    override func doSomething() {
        print("조큼 변형한 함수")
    }
}

0개의 댓글