[Swift] 클래스 상속

6702 단어 swift문법swift

Swift 문법을 단단하게 공부하고 싶어서 정리를 해보려고 한다!
차근 차근 공부하면서 머릿속에 넣고 싶은 부분에 대해 정리를 해볼 예정이다!
오늘은 클래스 상속에 대해 간단하게 정리를 해볼 것이다.

1. 클래스 선언 및 서브 클래스 만들기

스위프트에서는 클래스를 선언하고 그 클래스를 상속 받아 활용이 가능하다.
이 때 상속의 대상이 되는 클래스를 super 클래스, 상속 받는 클래스를 sub 클래스라고 한다.

//Super 클래스
Class animal{
  var leg = 0
  func sound(){
  	print("mong!")
  }
}

//Sub 클래스
Class cat: animal{
  var color = "yellow"
}

cat.sound()		//mong! 출력
cat.color		//yellow
cat.leng		//0

이런 식으로 두개의 클래스를 만들었을 때
animal 클래스는 super 클래스, cat 클래스는 sub 클래스이다.

클래스를 선언할 때 클래스 명 뒤에 ( : "Super 클래스명 ) 을 써줌으로써 상속이 가능하다.

cat 클래스는 animal 클래스를 상속 받아 animal 클래스의 프로퍼티를 사용할 수 있고, 새로운 프로퍼티를 추가할 수도 있다.

2. 프로퍼티 재정의

sub 클래스는 super 클래스의 프로퍼티를 수정하여 사용할 수도 있다.
override를 사용하여 프로퍼티를 재정의하면 프로퍼티의 내용이 변경된다.

//Super 클래스
Class animal{
  var leg = 0
  func sound(){
  	print("mong!")
  }
}

//Sub 클래스
Class cat: animal{
  var color = "yellow"
  override func sound(){
    print("meow~")
  }
}

cat.sound()		//meow~ 출력
cat.color		//yellow
cat.leng		//0

sound() 함수를 재정의 해주면 animal 클래스에서 정의한 내용이 아니라 cat 클래스에서 재정의 한 내용이 출력된다.
이 때 재정의 되기 이전의 Super 클래스의 함수를 사용하고 싶은 경우에는
super.함수명() 의 형태로 호출이 가능하다.

위의 코드에 이를 추가해주면

//Sub 클래스
Class animal{
  var leg = 0
  func sound(){
  	print("mong!")
  }
}

Class cat: animal{
  var color = "yellow"
  override func sound(){
    print("meow~")
    super.sound()
  }
}

cat.sound()		//meow~
			//mong!
            
cat.color		//yellow
cat.leng		//0

cat.sound()를 실행했을 때 첫번째 줄에는 cat 클래스에서 재정의된 함수가, 두번째 줄에는 animal 클래스에서 정의된 함수의 내용이 출력된다.

3. final

프로퍼티를 처음 정의할 때 final을 지정하여 정의하면 Sub 클래스에서의 재정의가 불가능하다.
클래스를 선언할 때 final을 지정하면 Sub 클래스를 생성할 수 없다.

좋은 웹페이지 즐겨찾기