Swift — Classes
Basic class
class Person {
var name: String
var age: Int
init(name: String, age: Int) {
self.name = name
self.age = age
}
func greet() {
print("Hi, I'm \(name)!")
}
}
let alice = Person(name: "Alice", age: 30)
alice.greet()
Inheritance
class Animal {
var name: String
init(name: String) {
self.name = name
}
func speak() {
print("\(name) makes a sound")
}
}
class Dog: Animal {
override func speak() {
print("\(name) says Woof!")
}
}
let dog = Dog(name: "Rex")
dog.speak() // Rex says Woof!
Properties
class BankAccount {
private var _balance: Double
var balance: Double {
get { _balance }
set { _balance = newValue }
}
init(balance: Double) {
_balance = balance
}
func deposit(_ amount: Double) {
_balance += amount
}
func withdraw(_ amount: Double) -> Bool {
guard _balance >= amount else { return false }
_balance -= amount
return true
}
}
Reference semantics
class Person {
var name: String
init(name: String) { self.name = name }
}
let p1 = Person(name: "Alice")
let p2 = p1
p2.name = "Bob"
print(p1.name) // Bob (shared reference)
Deinitializers
class Resource {
let name: String
init(name: String) {
self.name = name
print("Acquired: \(name)")
}
deinit {
print("Released: \(name)")
}
}
do {
let r = Resource(name: "File")
// Released here
}
Type casting
class MediaItem {
var name: String
init(name: String) { self.name = name }
}
class Movie: MediaItem {
var director: String
init(name: String, director: String) {
self.director = director
super.init(name: name)
}
}
let items: [MediaItem] = [
Movie(name: "Casablanca", director: "Curtiz"),
Movie(name: "Citizen Kane", director: "Welles")
]
for item in items {
if let movie = item as? Movie {
print("\(movie.name) by \(movie.director)")
}
}
Mini Practice
Write Swift code that:
- Creates a class with inheritance
- Overrides a method in a subclass
- Demonstrates reference vs value semantics
- Uses type casting with
as?
Up Next
In the next lesson, you'll learn about Properties — stored and computed properties.
Related Topics
Frequently Asked Questions about Classes
What is Classes in Swift?
Classes is a fundamental concept in Swift. This lesson explains it step by step with clear examples, making it easy for beginners to understand.
How do I learn Classes?
Start by reading the explanation above, then try the code examples. Practice by modifying the examples and experimenting with different values. Hands-on practice is the best way to learn Classes.
Why is Classes important in Swift?
Classes is essential for Swift development. Understanding this concept will help you write better code and solve real-world problems more effectively.