YagSill

IOS 앱 개발 "상속" 본문

Swift - IOS 앱 개발

IOS 앱 개발 "상속"

YagSill 2021. 9. 1. 23:27
728x90

안녕하세요 YagSill 입니다!

 

오늘은 Class의 상속에 대한 개념에 대해 조금 더 알아 보았는데요!

 

한번 코드로 알아보겠습니다!

일단 저는 StudentAthlete 이라는 "운동부학생" 이라는 class를 만들었구요, 이전에 student라는 class를 상속하고 있는 상태로 만들었습니다.

 

minimumTrainingTime(기본적인 트레이닝 시간) 을 2시간으로 잡았구요

trainedTime(트레이닝시간) 을 현재는 0으로 설정해 두었습니다.

 

func train() 함수는 한번 실행될 때 마다 1씩 + 되도록 함수를 만들었습니다!

그리고 난 뒤 athelete1 이라는 변수에 StudentAthelete class(운동부학생)을 넣었습니다.

 

1) 현재 athelete1.minimumTrainingTime을 알아봅시다 = 위에서 선언한대로 값은 2가 나옵니다.

 

2) athelete1.train()를 해봅시다 = 위에서 func train() 함수를 정의한대로 train() 함수를 한번 실행할 때 마다 +1을 합니다.

 

3) athelete1.trianedTIme 을 알아보자 = 처음은 0으로 초기화가 되어 있고, train() 함수를 한번 실행했으니 값은 1이 됩니다.

 

이렇게 상속을 하게 되면 부모 class의 값들을 사용할 수 있습니다.

 

하지만 여기서 상속이 쓰이는 부분을 잘 알아 두어야 합니다.

 

1. Single Responsibility(단일책임)

-> 각 클래스는 한개의 고려사항만 있으면 됩니다. 여러 클래스의 책임을 한 클래스가 다 가질 필요가 없다는 말입니다.

각 클래스는 한가지의 일만 집중해서 할 수 있도록 해야합니다. 

 

2. Type Safety(타입이 분명해야 할 때)

-> 원하는 타입의 값만 받고 싶을 때. 예를들어서 위에서 본 것과 같이 운동부 학생을 뽑는데 미술부, 음악부 학생들이 지원하게 되면 복잡하니 요럴 때 타입을 설정해서 받을 수 있습니다.

 

3. Extensibility(확장성이 필요한 경우)

-> 클래스 하나로 여러개로 상속받아 각각 다른 방향으로 확장해서 개념을 구체적으로 확장할 수 있습니다. 

 

4. Identity(정체를 파악하기 위해)

-> 이 자식은 어떤 클래스인가? 이런거를 파악할 때 씁니다. 

 

 

일단 상속을 할지 말지에 대해 여러가지 사항을 생각해보고 상속개념을 사용하라고 합니다.

 

일단 다양한 경우의 수가 있으니 조심해서 사용해야 할 것 같습니다!

 

오늘도 즐거운 코딩~!!@!@ 끝@!@! 

 

앙!!! 뇽!!!!

게임해야징~!

728x90

'Swift - IOS 앱 개발' 카테고리의 다른 글

IOS Swift 비동기처리란?  (0) 2022.01.04
Music Player APP 만들기  (0) 2021.12.27
IOS 앱 개발 [상속]?  (0) 2021.08.30
IOS 앱 개발 Class 와 Struct의 차이  (0) 2021.08.26
IOS 메소드  (0) 2021.08.25