Note 8 클래스의 상속, extension 및 protocol

1505 단어

물려받다


//부류의 변수는 부류의 대상을 인용할 수 있다
var ani: Animal // eat()
ani = Dog()    // bite()
var dog1 : dog

하위 클래스의 변수로 부모 클래스의 대상을 인용할 수 없습니다
//dog1 = Animal()
ani.eat()
//ani.bite()  
//ani Animal , 
// 
func getInfo(animal: Animal){
    // animal Animal 
    // Animal Dog,Cat
    //dog1 = Dog() getInfo(dog1) 
    //cat1 = cat() getInfo(cat1)
    // 
}

하나의 작업이 실행될 때 실제 인용된 대상 유형에 따라 결정되는 것이지 변수의 유형에 따라 결정되는 것이 아니다
  • 하위 클래스는 상위 클래스의 모든 기능을 가진다
  • 자류는 부류의 일부 기능을 다시 정의할 수 있다(방법): 방법 앞에 오버라이드
  • 를 붙인다.
  • Swift는 단일 상속만 지원
  • 자류는 부류를 바탕으로 확장할 수 있다
  • 액세스 권한 제어

  • 권한: 인터넷/pravite/public
  • 기본값은 인터넷: 현재 응용 프로그램이나 모듈에서 볼 수 있음
  • pravite: 현재 파일에서 사용
  • public: 다른 곳에서도 볼 수 있음
  • 구성원의 권한은 클래스의 권한을 초과할 수 없습니다

    extension & protocol

  • 계승(Inheritance): 주요 목적은 코드를 다시 사용하고 부류는 부류에 공공 코드를 제공하는 것이다
  • 실현: 제약을 제공하고 서로 다른 유형을 행위에 따라 비분류
  • 구성원 등록 정보

  • 저장 속성: 클래스에서 데이터를 직접 저장할 수 있는 속성
  • 계산 속성: 자체적으로 데이터를 저장할 수 없고 대상의 다른 데이터로부터 계산된 것이다
  • 1.extension

  • 클래스에 기능 추가
  • 하나의 클래스를 여러 개의 작은 부분으로 나누어 코드 관리와 유지보수를 편리하게 한다
  • 기존의 유형에 새로운 기능을 추가할 수 있다. 방법과 계산 속성을 포함한다
  • 신규 스토리지 속성 없음
  • 2.protocol

  • 공공 부류는 없지만 유사한 행위가 있는 대상은 동류로 분류
  • 클래스나 확장에서 프로토콜의 속성이나 방법을 실현
  • 같은 클래스는 여러 프로토콜을 실현할 수 있고 여러 프로토콜은 쉼표로 구분
  • 간단하게 말하면 부류 관계가 없는 일부 클래스를 한데 나누어 코드의 통용성을 더욱 강하게 하는 것이다

    좋은 웹페이지 즐겨찾기