Inheritance Class Hierarchies SoftUni Team Technical Trainers Software University

Slides:



Advertisements
Similar presentations
 Dimitar Ivanov Introduction to programming with microcontrollers.
Advertisements

C# Advanced Topics Methods, Classes and Objects SoftUni Team Technical Trainers Software University
AngularJS Services Built-in and Custom Services SoftUni Team Technical Trainers Software University
Methods Writing and using methods, overloads, ref, out SoftUni Team Technical Trainers Software University
Software University Curriculum, Courses, Exams, Jobs SoftUni Team Technical Trainers Software University
Fundamentals SoftUni Welcome to Software University SoftUni Team Technical Trainers Software University
Advanced JavaScript Course Introduction SoftUni Team Technical Trainers Software University
Project Tracking Tools Trello, Asana, Basecamp, GitHub Issue Tracker, TRAC SoftUni Team Technical Trainers Software University
AngularJS Directives Defining Custom Directives SoftUni Team Technical Trainers Software University
Software Testing Lifecycle Exit Criteria Evaluation, Continuous Integration Ivan Yonkov Technical Trainer Software University.
Teamwork and Personal Skills Course Introduction Software University SoftUni Team Technical Trainers.
Fundamentals SoftUni Welcome to Software University SoftUni Team Technical Trainers Software University
Design Patterns: Structural Design Patterns
High-Quality Programming Code Code Correctness, Readability, Maintainability, Testability, Etc. SoftUni Team Technical Trainers Software University
JavaScript Design Patterns Private Fields, Module, Revealing Module, Revealing Prototype, … Software University Technical Trainers SoftUni.
NoSQL Databases NoSQL Concepts SoftUni Team Technical Trainers Software University
Conditional Statements Implementing Control-Flow Logic in C# SoftUni Team Technical Trainers Software University
Loops Repeating Code Multiple Times SoftUni Team Technical Trainers Software University
Start Your Own Blog Angel Georgiev Part-time Trainer angeru.softuni-friends.org Software University The Culture of Knowledge Sharing.
Database APIs and Wrappers
Entity Framework Performance SoftUni Team Technical Trainers Software University
Svetlin Nakov Technical Trainer Software University
Build Processes and Continuous Integration Automating Build Processes Software University Technical Trainers SoftUni Team.
Processing Redis with.NET How to Operate with Redis Databases SoftUni Team Technical Trainers Software University
Project Tracking Tools Trello, Asana, Basecamp, GitHub Issue Tracker, TRAC Angel Georgiev Part-time Trainer Software University
Test-Driven Development Learn the "Test First" Approach to Coding SoftUni Team Technical Trainers Software University
Defining Classes Classes, Fields, Constructors, Methods, Properties SoftUni Team Technical Trainers Software University
Asynchronous Web Services Writing Asynchronous Web Services SoftUni Team Technical Trainers Software University
Defining Classes Classes, Fields, Constructors, Methods, Properties Svetlin Nakov Technical Trainer Software University
Jekyll Static Site Generator Template-Based Site Generation Svetlin Nakov Technical Trainer Software University
JavaScript Modules and Patterns Private Fields, Module, Revealing Module, Revealing Prototype, … Software University Technical Trainers.
Exam Preparation Algorithms Course: Sample Exam SoftUni Team Technical Trainers Software University
High-Quality Programming Code Code Correctness, Readability, Maintainability Svetlin Nakov Technical Trainer Software University
High-Quality Code: Course Introduction Course Introduction SoftUni Team Technical Trainers Software University
Design Patterns: Structural Design Patterns General and reusable solutions to common problems in software design Software University
Advanced C# Course Introduction SoftUni Team Technical Trainers Software University
Prototype Chain and Inheritance Prototype chain, Inheritance, Accessing Base Members Software University Technical Trainers SoftUni Team.
Inheritance and Abstraction Class Hierarchies, Abstract Classes, Interfaces SoftUni Team Technical Trainers Software University
Object-Oriented Programming Course Introduction Svetlin Nakov Technical Trainer Software University
Reflection Programming under the hood SoftUni Team Technical Trainers Software University
Mocking with Moq Tools for Easier Unit Testing SoftUni Team Technical Trainers Software University
Design Patterns: Behavioral Design Patterns General and reusable solutions to common problems in software design Software University
Mocking Unit Testing Methods with External Dependencies SoftUni Team Technical Trainers Software University
Mocking with Moq Mocking tools for easier unit testing Svetlin Nakov Technical Trainer Software University
Test-Driven Development Learn the "Test First" Approach to Coding Svetlin Nakov Technical Trainer Software University
Sets, Dictionaries SoftUni Team Technical Trainers Software University
Creating Content Defining Topic, Creating Technical Training Materials SoftUni Team Technical Trainers Software University
High-Quality Code: Course Introduction Course Introduction SoftUni Team Technical Trainers Software University
Advanced Tree Structures Binary Trees, AVL Tree, Red-Black Tree, B-Trees, Heaps SoftUni Team Technical Trainers Software University
Functional Programming Data Aggregation and Nested Queries Ivan Yonkov Technical Trainer Software University
Programming Fundamentals Course Introduction SoftUni Team Technical Trainers Software University
Doctrine The PHP ORM SoftUni Team Technical Trainers Software University
Team Work and Personal Skills Course Introduction Angel Georgiev Part-time Trainer Software University
Creating Content Defining Topic, Creating Technical Training Materials SoftUni Team Technical Trainers Software University
ASP.NET MVC Course Program, Trainers, Evaluation, Exams, Resources SoftUni Team Technical Trainers Software University
Static Members Static Variables & Methods SoftUni Team Technical Trainers Software University
Stacks and Queues Processing Sequences of Elements SoftUni Team Technical Trainers Software University
Generics SoftUni Team Technical Trainers Software University
C# OOP Advanced Course Introduction SoftUni Team Technical Trainers Software University
Asynchronous Programming Writing Asynchronous Code in Java SoftUni Team Technical Trainers Software University
Java OOP Advanced Course Introduction SoftUni Team Technical Trainers Software University
High-Quality Programming Code Code Correctness, Readability, Maintainability, Testability, Etc. SoftUni Team Technical Trainers Software University
Databases basics Course Introduction SoftUni Team Databases basics
Abstract Classes, Abstract Methods, Override Methods
Reflection SoftUni Team Technical Trainers Java OOP Advanced
OOP Course - Virtual Trip
Inheritance Extending Classes SoftUni Team Technical Trainers Java OOP
Inheritance Class Hierarchies SoftUni Team Technical Trainers C# OOP
Databases advanced Course Introduction SoftUni Team Databases advanced
Entity Framework: Relations
Presentation transcript:

Inheritance Class Hierarchies SoftUni Team Technical Trainers Software University

2 1.Fundamental Principles of OOP 2.Inheritance ▪ Class Hierarchies ▪ Inheritance and Access Levels Table of Contents

3 sli.do #3666 Questions

Fundamental Principles of OOP

▪Encapsulation ▪Inheritance ▪ Inherit members from parent class ▪ Inherit constructors from parent class ▪ Polymorphism ▪ Abstraction Fundamental Principles of OOP 5

Inheritance

Types of Inheritance derived class base class / parent class inherits 7

Types of Inheritance (2) interface class implements 8

Types of Inheritance (3) derived interface base interface extends 9

1. Extensibility 2. Reusability 3. Provides abstraction Inheritance – Benefits 10

Don't use it to build has-a relationship E.g. dog has-a name (dog is not a name) Examples - Incorrect 11

Use inheritance for building is-a relationship E.g. dog is-a animal (dog is an animal) Examples - Correct 12

13 How to Define Inheritance? class DerivedClass extends BaseClass

14 Use super to invoke the parent constructor How to Define Inheritance? (2) public Circle(int x, int y) { super(x, y); }

Exercises in Class

16 Private members are hidden Inaccessible Members

17 Inheritance – Example Person +Name: string +Address: string Employee +Company: string +Salary: decimal Student +School: string Base class Derived class

Class Hierarchies Game MultiplePlayersGame BoardGame Chess Backgammon SinglePlayerGame Minesweeper Solitaire 18

Simple Inheritance Live Demo

20 ▪ public ▪ private ▪ protected ▪no modifier Access Modifiers in Java

21 There is no multiple inheritance Inheritance: Important Aspects

22 Constructors are not inherited Inheritance: Important Aspects (2)

23 Extended class could add new members, but couldn’t remove derived members Inheritance: Features

24 New members with the same name or signature hide the inherited ones Inheritance: Features (2)

Exercises in Class

26 UML class diagrams Inheritance Hierarchies

27 UML Class Diagram – Example

Class Diagrams in IntelliJ Idea Live Demo

29 ▪Inheritance allows extending the behavior of the classes ▪ Inheriting Fields ▪ Inheriting Methods ▪ Reusing the existing code Summary

? ? ? ? ? ? ? ? ? OOP – Encapsulation

License ▪ This course (slides, examples, demos, videos, homework, etc.) is licensed under the "Creative Commons Attribution- NonCommercial-ShareAlike 4.0 International" licenseCreative Commons Attribution- NonCommercial-ShareAlike 4.0 International 31 ▪ Attribution: this work may contain portions from ▪ "Fundamentals of Computer Programming with Java" book by Svetlin Nakov & Co. under CC-BY-SA licenseFundamentals of Computer Programming with JavaCC-BY-SA ▪ "OOP" course by Telerik Academy under CC-BY-NC-SA licenseOOPCC-BY-NC-SA

Free Software University ▪ Software University Foundation – softuni.orgsoftuni.org ▪ Software University – High-Quality Education, Profession and Job for Software Developers ▪ softuni.bg softuni.bg ▪ Software Facebook ▪ facebook.com/SoftwareUniversity facebook.com/SoftwareUniversity ▪ Software YouTube ▪ youtube.com/SoftwareUniversity youtube.com/SoftwareUniversity ▪ Software University Forums – forum.softuni.bgforum.softuni.bg