Object-Oriented Programming (OOP) is a fundamental concept in Dart that helps developers write clean, reusable, and scalable code. If you're planning to build apps using Flutter, mastering OOP is essential.
In this guide, we’ll break down OOP concepts in Dart in a simple and practical way.
What is OOP?
OOP (Object-Oriented Programming) is a programming paradigm based on the concept of objects. These objects represent real-world entities and contain both data and behavior.
- Class & Object
A class is a blueprint, and an object is an instance of that class.
dart
class Student {
String name = "Subina";
void showName() {
print(name);
}
}
void main() {
Student s = Student();
s.showName();
}
- Constructor
A constructor is a special method that runs automatically when an object is created.
dart
class Student {
String name;
Student(this.name);
void show() {
print("Name: $name");
}
}
void main() {
Student s = Student("Subina");
s.show();
}
- Encapsulation
Encapsulation means hiding data and controlling access using getters and setters.
dart
class Student {
String _name = "Subina";
String get name => _name;
set name(String newName) {
_name = newName;
}
}
void main() {
Student s = Student();
s.name = "Ram";
print(s.name);
}
- Inheritance
Inheritance allows one class to inherit properties and methods from another class.
dart
class Person {
void show() {
print("I am a person");
}
}
class Student extends Person {
void study() {
print("I am studying");
}
}
void main() {
Student s = Student();
s.show();
s.study();
}
- Method Overriding
A child class can override a method from the parent class.
dart
class Person {
void show() {
print("Person class");
}
}
class Student extends Person {
@override
void show() {
print("Student class");
}
}
- Polymorphism
Polymorphism allows methods to behave differently based on the object.
dart
class Animal {
void sound() {
print("Animal sound");
}
}
class Dog extends Animal {
@override
void sound() {
print("Dog barks");
}
}
void main() {
Animal a = Dog();
a.sound();
}
- Abstraction
Abstraction hides implementation details and shows only essential features.
dart
abstract class Animal {
void sound();
}
class Dog extends Animal {
@override
void sound() {
print("Dog barks");
}
}
- Interface (implements)
Dart does not have a separate interface keyword, but every class can act as an interface.
dart
class Animal {
void sound() {}
}
class Dog implements Animal {
@override
void sound() {
print("Dog barks");
}
}
Why OOP Matters?
Using OOP makes your code:
* ✅ Reusable
* ✅ Organized
* ✅ Scalable
* ✅ Easy to maintain
Top comments (0)