Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- 조건에 맞게 수열 변경하기 3
- swift
- 연산자
- Error installing cocoapods
- 프로그래머스 주사위 게임1
- 프로그래머스 조건에 맞게 수열 변경하기 3
- 프로그래머스
- 프로그래머스 문자열 붙여서 출력하기
- 배열 만들기1
- 프로그래머스 n의 배수 고르기
- cocoapods 설치 오류
- 문자열 붙여서 출력하기
- 객체지향
- 주사위 게임1
- continue
- 프로그래머스 최댓값 만들기(2)
- 프로그래머스 n번째 원소까지
- array
- 스파르타 코딩클럽 내일배움캠프
- 프로그래머스 문자열 정렬하기 (1)
- 스파르타코딩캠프
- 문자열 정렬하기 (1)
- Til
- 스페인어
- n번째 원소까지
- Break
- ruby설치
- 프로그래머스 자동커밋
- 프로그래머스 배열 만들기1
- 프로그래머스 암호 해독
Archives
- Today
- Total
dev._.note
[Swift] 상속(Inheritance) 본문
📌 상속(Inheritance)
Swift에서 상속(Inheritance)은 클래스(Class) 간에 코드 및 속성을 공유하는 메커니즘을 제공. 상속은 기존 클래스에서 새로운 클래스를 만들고, 기존 클래스의 특성(속성과 메서드)을 재사용하면서 새로운 기능을 추가할 수 있도록 해줌(서브 클래싱).
상속사용의 장점:
- 코드 재사용성: 기존 클래스의 특성을 재사용하여 중복을 피하고 유지보수성을 높일 수 있습니다.
- 계층 구조: 부모 클래스와 이를 상속받는 자식 클래스 간에 계층 구조를 형성하여 다양한 수준의 추상화와 분류를 가능하게 합니다.
- override
- override 키워드는 부모 클래스에서 상속받은 메서드, 속성 또는 서브스크립트를 자식 클래스에서 다시 정의할 때 사용.
- 자식 클래스에서 부모 클래스의 메서드를 재정의하여 새로운 구현을 제공.
- 메서드, 속성, 서브스크립트를 재정의하기 위해서는 override 키워드를 사용해야 함.
- super
- super 키워드는 자식 클래스에서 부모 클래스의 메서드, 속성 또는 초기화 메서드를 호출할 때 사용.
- 부모 클래스의 메서드를 호출하거나 부모 클래스의 초기화 메서드를 호출하는 데 사용.
- super.method() 또는 **super.property**와 같이 사용하여 부모 클래스의 기능을 호출할 수 있음.
- final
- final 키워드는 클래스, 메서드, 속성 또는 서브스크립트를 표시하여 상속이 불가능하도록 만듬.
- final 키워드가 클래스에 사용되면 해당 클래스는 상속 불가능.
- 메서드, 속성, 서브스크립트에 사용될 경우, 해당 멤버들을 재정의(Override)불가능.
- 참고 자료: The Swift Programming Language - Inheritance
Documentation
docs.swift.org
// 부모 클래스(Person) 선언
class Person {
var name: String
var age: Int
init(name: String, age: Int) {
self.name = name
self.age = age
}
func greet() {
print("Hello, my name is \(name).")
}
}
// Person 클래스를 상속받는 자식 클래스(Student) 선언
class Student: Person {
var studentID: Int
init(name: String, age: Int, studentID: Int) {
self.studentID = studentID
super.init(name: name, age: age)
}
func study() {
print("\(name) is studying.")
}
}
// Student 클래스 인스턴스 생성 및 사용
let john = Student(name: "John", age: 20, studentID: 123)
john.greet() // 출력: Hello, my name is John.
john.study() // 출력: John is studying.
// override, super 키워드 예시
class Animal {
func makeSound() {
print("Some generic sound")
}
}
class Dog: Animal {
override func makeSound() {
super.makeSound() // 부모 클래스의 메서드 호출
print("Bark!")
}
}
let dog = Dog()
dog.makeSound()
// final 키워드 예시
final class Vehicle {
final var wheels: Int = 0
final func makeSound() {
print("Some generic sound")
}
}
// Error: 'SubVehicle' cannot inherit from final class 'Vehicle'
class SubVehicle: Vehicle {
// Error: 'wheels' cannot override 'final' var from superclass
// override var wheels: Int = 4
// Error: 'makeSound()' cannot override a final method
// override func makeSound() {
// print("Custom sound")
// }
}
'Dev > SWIFT' 카테고리의 다른 글
[Swift] 계산기 만들기 (0) | 2023.12.01 |
---|---|
[Swift] 초기화(Initialization) (1) | 2023.11.30 |
[Swift] Class와 Struct, Enum (0) | 2023.11.30 |
[Swift] radix (0) | 2023.11.29 |
[Swift] 객체지향(OOP/Object-Oriented-Programming) (0) | 2023.11.29 |