C# Intermediate: Classes, Interfaces and OOP (Udemy.com)
An in-depth, step-by-step guide to classes, interfaces and object-oriented programming (OOP) with C#
Created by: Mosh Hamedani
Last updated October 2019
Our take
Based on the ratings of 41,921 students, a sample of their written reviews and the syllabus, as the course stood in October 2019. No course pays to be reviewed.
This is the middle part of Mosh Hamedani's three-course C# series, and it does one thing: classes, interfaces and object-oriented design. Six hours, 44 lectures, eight sections. The syllabus runs from constructors, fields and properties through association, inheritance, polymorphism and interfaces, and closes with three code reviews of student work. It's for people who already know C# syntax and want to understand why code is organized the way it is, not another tour of loops and variables. About 180,000 students have enrolled, and the 4.6 rating comes from nearly 42,000 reviews.
Reviewers say Mosh explains things in small logical steps and goes to the root of each concept, and one credits the course with finally making OOP click. The interfaces section gets both praise and the most complaints: a few students wanted more time on when to actually use one. The lower-star reviews point at age. The course was last updated in October 2019, and one reviewer notes the Visual Studio version on screen looks dated and the Q&A posts are years old. Others wanted more exercises, better practical examples, and fewer plugs for the instructor's other courses.
It's paid, and it pairs naturally with Mosh's C# Basics course, which covers the prerequisites. It shares our list with a separate OOP basics course. If you can live with older tooling and want a clear explanation of encapsulation, inheritance versus composition, and interfaces, it's still a solid pick. If you want modern C# features or lots of hands-on drills, this isn't the one.
Pros
- Explains why, not just how: encapsulation, composition over inheritance, interfaces for testability
- Small logical steps that reviewers praise; one says it finally made OOP make sense
- Six hours and 44 lectures on one topic, with no detours into unrelated material
- Ends with three code reviews of real student submissions
Cons
- Last updated in October 2019; the Visual Studio on screen looks dated and the Q&A is quiet
- No quizzes or coding exercises built in; several reviewers wanted more practice
- Some students found the interfaces section too short on when to actually apply them
I always enjoy Mosh's classes. He breaks down the material in a simple straight forward way that makes it easy to understand and follow.
Intermediate is accurate: it assumes variables, loops, conditionals and basic classes, roughly what Mosh's C# Basics course covers.
What you will learn
- Work with classes, constructors, fields, properties, methods and indexers
- Use encapsulation to improve the robustness of the code and reduce the impact of change
- Re-use code using inheritance and composition
- Understand the problems with inheritance and how composition solves these problems
- Change the behaviour of an application by extending its code, rather than changing it
- Develop loosely-coupled, testable and extensible applications using interfaces
Course content
8 sections · 44 lectures · 6 hours of video 5 articles
- 1About this Course 2 free previews6 lectures · 6 min
- 2Classes10 lectures · 1.8 hours
- 3Association between Classes 2 free previews5 lectures · 28 min
- 4Inheritance - Second Pillar of OOP6 lectures · 57 min
- 5Polymorphism: Third Pillar of OOP5 lectures · 32 min
- 6Interfaces 1 free preview7 lectures · 1.1 hours
- 7What's Next?2 lectures · 1 min
- 8Extra: Students' Code Reviews3 lectures · 32 min
Who it is for
The instructor says it suits
- Any C# developer who wants to master classes and interfaces
- Any C# programmer who wants to better understand object-oriented programming
What you need before you start
- Basic understanding of C# constructs: variables, type conversion, classes, conditionals and loops
How it compares
Against the other 194 rated Udemy courses in C# on CourseDuck:
- Rating4.6 out of 5higher than 76% of them
- Reviews41,921#2 of 195 by number of reviews
- Length6 hoursshorter than 50% of them
- Last updatedOctober 2019earlier than 69% of them
Quality Score
Overall Score : 92 / 100
Course Description
Whether you want to use C# to build web apps, mobile apps, desktop apps or games, understanding C# classes, interfaces and principles of object-oriented programming is crucial.
This course is the second part of Mosh's best-selling C# series and is all about classes, interfaces and object-oriented programming. In essence, you'll learn:
- How to work with classes, constructors, fields, properties, methods and indexers
- How to use encapsulation to reduce the impact of change
- 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
There are lots of free tutorials and videos on YouTube. Why would you want to take this course?
The answer is simple: quality of teaching.
Mosh is a passionate software engineer with over 13 years of experience developing applications in C#. He is the author of several best-selling C# courses on Udemy and knows how to lead you through a series of baby steps in a logical way.
So, from the very beginning to the very end, you'll be confident that you'll be in good hands and watching every minute of the course, unlike the reading many free tutorials and videos, does not waste your precious time.
Each section is equipped with a balanced mix of theory and practice. At the end of each section you'll get exercises to master the concepts you learn in that section.
And one last reason: all videos are produced with high quality video/audio, to provide you the best learning experience.
THE COMPLETE C# PACKAGE
This course is the second part of Mosh's complete C# series on Udemy:
- Part 1: C# Basics for Beginners: Learn C# Fundamentals by Coding
- Part 2: C# Intermediate: Classes, Interfaces and Object-oriented Programming
- Part 3: C# Advanced: Take Your C# Skills to the Next Level
WHAT OTHER STUDENTS WHO HAVE TAKEN THIS COURSE SAY:
"I’ve actually landed my first job as a Junior software developer. I owe a lot of it to you because your courses have been EXTREMELY helpful. May God bless you and your efforts to create high quality courses. This has really changed my life from working as a security guard and doing websites for free, now I am a professional." -Danish Jafri
"Your courses have given me the confidence to get out of my dead end job and apply for a full time coding job. I am very happy to say that I just finished the job interview and they gave me the job!!!" -Dan Farnell
"Outstanding quality! I have come to learn that all Mosh's courses are top notch. This course is no different! The content is beautifully designed, well organized with great examples, and delivered in a clear and concise manner (with great video and audio quality)! I also loved that this course includes exercises. Fantastic stuff!" -Roger Sæle
"Love it! This guy definitely knows what he's talking about. He strives to make his courses as comprehensive as possible and he teaches you several tricks along the way." -Jeb Watson
"As with all of his courses his passion and love for programming is infectious. He does a great job of intermixing theory with hard examples and cautions with practicality. If you learn better by watching and examples then reading and theory this is a must watch to move beyond the learning the syntax of c#." -Michael Paul
"Excellent course! All of Mosh's courses are very much worth taking if you really want to learn C# in a professional way. Not only does Mosh clearly describe the syntax of the language and explain the language concepts, but he also constantly emphasizes the importance of good programming practices" -Tony Zampini
ABOUT YOUR INSTRUCTOR
Mosh (Moshfegh) Hamedani is a passionate software engineer and teacher with 13 years of experience building applications using C# (since the first release of .NET Framework in 2002). Mosh is a full-time developer and what you are going to learn in this course is the result of his day-to-day work as a hardcore programmer along with years of studying,
Mosh's students describe him as a passionate teacher who knows how to take a student on a series of logical steps and enriching them with a great mixed of theory and practice.
100% MONEY-BACK GUARANTEE
This course comes with a 30-day full money-back guarantee. Take the course, go through the lectures, do the exercises, and if you're not happy, ask for a refund within 30 days. All your money back, no questions asked.
So do you want to take your C# skills to the next level? Then take this course now and get started!
Instructor Details
- 4.6 Rating
41,921 Reviews
Mosh Hamedani
Hi! I'm Mosh, a software engineer with over 20 years of experience. I'm all about clear, concise, practical coding tutorials – no fluff, just the good stuff! My courses focus on real-world projects and the skills that will get you hired. I've helped millions of students transform their careers. Want to level up your skills? Check out my courses and get started.
More courses by Mosh Hamedani
C# Basics for Beginners: Learn C# Fundamentals by Coding (2020)
4.5 (80,103 Reviews)
Provider: Udemy
Time: 5.4h
$149.99
The Complete Angular Course: Beginner to Advanced (2018)
4.5 (28,156 Reviews)
Provider: Udemy
Time: 29.6h
$124.99
C# Advanced Topics: Prepare for Technical Interviews (2019)
4.5 (25,212 Reviews)
Provider: Udemy
Time: 3.1h
$94.99
Angular Crash Course for Busy Developers (2018)
4.5 (19,235 Reviews)
Provider: Udemy
Time: 10.3h
$99.99
More C# courses
C# Developers: Double Your Coding Speed with Visual Studio (2018)
4.7 (4,035 Reviews)
Provider: Udemy
Time: 2.2h
$13.99
Object Oriented Programming with C# - Beginner to Advanced (2020)
4.7 (2,063 Reviews)
Provider: Udemy
Time: 5.6h
$64.99
Learn Game Development with C# Programming and MonoGame! (2025)
4.7 (1,094 Reviews)
Provider: Udemy
Time: 6.6h
$12.99
Reviews
By Tom Smith on 8/11/2026
This course FINALLY gave me a feeling of confidence regarding all the formerly mysterious and arcane aspects of object oriented programming and the .NET framework. Great pacing, modulation and presentation from a great teacher!
By Sepideh Takeh on 7/2/2026
The course is good, however examples are not good enough and some are hard to follow or comprehend. It would be better to use clear examples.
By Rich Couvillon on 5/8/2026
It's currently early May 2026. I went through the fundamentals and intermediate courses primarily for a brief dive into learning C#. While it's a helpful introduction overall, the course could definitely benefit from some updates: 1. In the lectures, it appears a fairly outdated version of VisualStudio and C#. This makes it difficult to follow along in the coding sections (especially in my example below). I also notice that most of the posts in the Q&A are at least 6 years old. Perhaps a decline in engagement with this course is a direct result of its outdated content 2. I'm not sure it's useful to have so many references to using the Resharper extension, unless the trial for it happens to be of indefinite duration. I saw the paid subscription requirement for it, and for learning purposes, this isn't really worth it. Specific issues with the Interfaces and Testability lecture: 1. The source code for the lectures is not shared, and this particular lecture did not show the code in each of the source files used. Students following along and reproducing the code while following along are left with guesswork to implement those files. Fortunately in this case it's not very complex but if you're not going to share the code upfront at least show all of it in the video. 2. A specific comment was made in this lecture that unit testing was outside the scope of this Intermediate course, and yet this lecture focused heavily on showcasing unit testing. A little contradictory in my opinion. 3. It appears that the version of VisualStudio used in the lectures is the 2015 version (or maybe 2019 at best). This causes an even larger issue for a student to follow along. I used VisualStudio 2022 to follow along and do the exercises in this course, and by default, new projects are created with .Net version 8.0. The .Net version used in the examples in this course all appear to be around versoin 4.5. This caused some headaches when attempting to follow along with adding the Testability.UnitTests project to the solution: the unit testing project used is not compatible with .Net versions beyond 4.8. I had to spend a considerable amount of time figuring out which project type to use (MSTest, xUnit, nUnit) and each of those also requires additional setup after adding the project to the solution through the NuGet package manager. Out of all the lectures that one is most in need of an update if any new students enroll for this course.
By Cp on 4/30/2026
Mosh is an excellent teacher who has done a great job of giving a comprehensive and step-by-step introduction to C#. His Intermediate course covers Object Oriented concepts such as Classes, Inheritance, and much more. He also explains why certain aspects of C## are useful (for example Interfaces which improve testability and extensibility). I would highly recommend his course!
By Thomas Durbin on 4/23/2026
Pretty good. A lot of content here. Pretty dense, or maybe I'm a slow learner. I will definitely have to rewatch the chapter on interfaces again, and I will probably end up watching the whole thing over again in the next couple of years. More content unpacking the idea/purpose of interfaces would have been appreciated.
By Zach Brown on 4/5/2026
I always enjoy Mosh's classes. He breaks down the material in a simple straight forward way that makes it easy to understand and follow.
By Pavlo Nahornyuk on 3/1/2026
A very informative and well-made video course. Clear explanations, useful examples, and a great learning experience overall.
By Gyanendra Sahoo on 1/21/2026
Clears basic concepts of OOPS from layman point of view to coding point of view. Explains properly differences between tightly coupled and loosely coupled classes. Moreover explains the concepts of Encapsulation, Polymorphism, Inheritance and Interfaces with real world examples.
By Steve Alicea on 12/24/2025
Being an "older" student, I am 61, I really appreciate Mosh's way of teaching his programming courses. As I mentioned in the email I sent to him, I have an "end user" or "front end" way of looking at his exercises. He obviously has a "back end" or programming way of looking at his problems. This is a very good thing for someone like me because after being in the IT world for over 20 years, it forces me to think with a programming mindset. I also had to tell Mosh in the email I sent to him about the problem with the MANY other, very intelligent individuals that teach programming or other IT subjects that have a VERY heavy accent when speaking English. Mosh does not have this and for an older student like myself, I do not have to rewind his video to understand what he is saying like other videos. I DO rewind his videos sometimes because he speaks FAST at times, but that is not a problem. Another reason to love individual learning with a video! All in all, I will continue to take Mosh's courses not only due to being able to understand him, but it is very obvious that he is VERY knowledgable of the do's and don'ts of programming with various examples on why. Thank you Mosh for your courses and I look forward to your advanced course in C#! Sincerely, Steve Alicea
By Kotoko Onishi on 11/18/2025
He is one of the most popular instructors in Udemy and youtube. His explanations are very organized and easy to understand. One thing that bothered me was that he talked about resharper over and over again.












