About this course
What You'll Learn
- Understand Object-oriented Programming (OOP) principles
- How to work with classes, constructors, fields, properties, methods and indexers
- How to use encapsulation to reduce the impact of changes
- How to improve the robustness of your code
- How to re-use code using inheritance and composition
- Why composition is better than inheritance
- How to build extensible applications using polymorphism
- How to develop loosely-coupled, extensible and testable applications using interfaces
- And much, much more!
Meet Your Instructor
Hi! I'm Mosh Hamedani. I’ve spent 20+ years in software engineering, and my goal isn’t just to teach you to code — it’s to help you think like a professional software engineer, master problem-solving, and build skills you’ll use for life.
10M+
Students taught
4M
YouTube fans
20+
Years of experience
50
Coding courses
Suggested by top companies
Top companies suggest this course to their employees and staff.





Prerequisites
FAQ
How is this course different from YouTube tutorials?
Crystal clear and straight to the point, each lesson is concise and packed with 20 years of software engineering experience. No rambling—just a perfectly structured path to help you really understand and build your skills.
What’s the difference between buying a course and subscribing?
Buying the course gives you lifetime access to this specific course with a one-time payment. Subscribing, on the other hand, grants you access to this course along with the entire course library for as long as your subscription is active. Subscriptions also include new courses added in the future.
How long will I have access to the course?
If you purchase this course, you’ll have lifetime access, allowing you to revisit lessons and resources anytime. If you subscribe, you’ll have access to this course and all others in the library as long as your subscription is active.
Is there a money-back guarantee?
Yes, there’s a 30-day money-back guarantee. If you find the course isn’t a good fit, you can request a refund within the first 30 days.
Comments (0)
Introduction(3m)
1 Parts
About this Course
-
Classes(2h)
10 Parts
Introduction to Classes
-
Constructors
-
Object Initializers
-
Methods
-
Fields
-
Access Modifiers
-
Properties
-
Indexers
-
Summary
0.07 MB
Exercises
0.04 MB
Association Between Classes(28m)
5 Parts
Class Coupling
-
Inheritance
-
Composition
-
Composition over Inheritance
-
Summary
0.05 MB
Inheritance: Second Pillar of OOP(57m)
6 Parts
Access Modifiers
-
Constructors and Inheritance
-
Upcasting and Downcasting
-
Boxing and Unboxing
-
Summary
0.05 MB
Exercises
0.05 MB
Polymorphism: Third Pillar of OOP(32m)
5 Parts
Method Overriding
-
Abstract Classes and Members
-
Sealed Classes and Members
-
Summary
0.05 MB
Exercises
0.05 MB
Interfaces(1h)
7 Parts
What is an Interface?
-
Interfaces and Testability
-
Interfaces and Extensibility
-
Interfaces are NOT for Multiple Inheritance
-
Interfaces and Polymorphism
-
Summary
0.05 MB
Exercises
0.04 MB
Students' Code Reviews(32m)
3 Parts
StopWatch Exercise
-
Stack Exercise
-
WorkflowEngine Exercise
-
Whats Next
2 Parts
Final Words
-
My Other Courses
-

0
0 Reviews