[swift] swift 기본 문법 스터디 8주차

[swift] swift 기본 문법 스터디 8주차

상속

  • 서브클래싱

    • 상속 받아 새로운 클래스를 만드는 것
    • 상속 받은 클래스의 프로퍼티와 메소드는 다 가진채로 추가 구현을 해줌
    • 상속은 1개만 가능, 나머지는 프로토콜
    • 중복의 문제
  • 오버라이딩

    • 덮어쓰기
    • 상속받은 메소드와 프로퍼티를 재정의(덮어쓰기 가능)
    • 메소드는 인자와 반환타입까지 일치
    • 프로퍼티는 연산형으로 get, set 구현

타입 캐스팅

상속을 받으면 타입이 달라지는데, 이를위해 타입을 변환할 수 있다.

  • 타입 비교 연산

    • is로 비교하고, 같은 타입이거나, 상위 타입이면 true를 반환
    • 그 외에는 모두 false를 반환
  • 타입 캐스팅 연산

    • as 를 이용해서 캐스팅
    • 다운 캐스팅과 업캐스팅 가능
    • 업 캐스팅은 보통 문제없음 (as)
    • 다운 캐스팅은 문제가 생길 수 있음 (as?, as!)

Any, AnyObject

  • 모든 클래스와, 타입의 부모
  • 어떤 캐스팅도 가능하다
  • 제공 메소드, 프로퍼티가 없음

초기화 구문

  • init 초기화 메소드

    • init 이라는 이름의 메소드는 초기화에 사용됨
    • 인스턴스를 생성할 때는 이름을 호출하지 않아도 가능 인스턴스 생성시 간접 호출
    • 여러개의 초기화 구문작성 가능 (오버로딩 지원)
  • 초기화 구문의 오버라이딩

    • 상속받아 초기화를 하면 부모의 프로퍼티가 초기화가 되지 않음
    • super.init()으로 초기화 가능

댓글

이 블로그의 인기 게시물

[IOS] AppDelegate는 뭐하는 녀석이지?

[git] Github 이슈 라벨(issue labels)

[git] git의 upstream과 origin 헷갈리는 사람 손!