# INFO Problem Solving & Programming Logic

## Presentation on theme: "INFO Problem Solving & Programming Logic"— Presentation transcript:

INFO 16029 - Problem Solving & Programming Logic
4/15/2017 Inheritance Wendi Jollymore, ACES

INFO 16029 - Problem Solving & Programming Logic
4/15/2017 What is Inheritance? A type of relationship between classes. There are a few different kinds of class relationships Inheritance is also called Generalization Occurs when one specific class “inherits” the characteristics and behaviors of a more general class It’s easier to understand with examples  4/15/2017 Wendi Jollymore, ACES Wendi Jollymore, ACES

What is Inheritance? Which of these are valid/true assertions?
All cars are vehicles All airplanes are vehicles All vehicles are cars We can say that: A car is a type of vehicle A bike is a type of vehicle A UFO is a type of vehicle True False 4/15/2017 Wendi Jollymore, ACES

What is Inheritance? We often say that Inheritance is an “is a” relationship A car is a vehicle A bike is a vehicle A fork is a utensil A cat is a feline One term is more general, the other more specific Vehicle, Utensil, Feline are general Car, bike, fork, cat, are specific 4/15/2017 Wendi Jollymore, ACES

What is Inheritance? What characteristics and behaviors to all vehicles share? Characteristics: Colour, number of wheels, number of passengers, brand or model Behaviors: Start, stop, accelerate/decelerate 4/15/2017 Wendi Jollymore, ACES

What is Inheritance? What characteristics/behaviors are different between a car and an airplane? Airplanes can fly Cars can reverse 4/15/2017 Wendi Jollymore, ACES

What is Inheritance In programming, the more general class is called the parent class or super class The more specific classes are called child classes or sub classes. Parent Class Child In Java, a child class is only allowed one parent class… …however, a parent can have many child classes 4/15/2017 Wendi Jollymore, ACES

What is Inheritance Examples Vehicles Car Airplane Bicycle Utensils
Fork Spoon Knife Examples Vehicles Car Airplane Bicycle 4/15/2017 Wendi Jollymore, ACES

What is Inheritance? A child class contains the characteristics and behaviors of its parent It might also have characteristics and behaviors of its own It might also have the same behaviors as the parent, but they just work differently Example: You can drive a car and drive a plane, but not the same way 4/15/2017 Wendi Jollymore, ACES

Example Full time employees Part time employees work 40 hours per week
get paid an annual salary weekly pay = annual salary / number of full weeks they work Part time employees can work a varying number of hours per week weekly pay = #of hours worked * hourly rate. 4/15/2017 Wendi Jollymore, ACES

Example Sales employees Temporary sales employees have varying hours
weekly pay = commission amount = a percentage of their weekly sales they also get a flat lump sum or base pay per week Temporary sales employees just like regular sales employees except that they don't get the base pay each week, just commissions 4/15/2017 Wendi Jollymore, ACES

Example In a payroll program, what data would we need to know about all employees? First name, last name, sin, employee id, address, phone number, city, province, postal code, etc. Data used to calculate pay for employees depends on the type of employee! 4/15/2017 Wendi Jollymore, ACES

Example Full time employees: Part time employees Sales employees
annual salary, weeks worked Part time employees hours worked, hourly rate Sales employees weekly sales, commission rate, base pay. Temporary sales employees weekly sales, commission rate. 4/15/2017 Wendi Jollymore, ACES

Example Writing each of the 4 classes with all of the data and methods would be tedious! We usually take the common things and put them in a parent class Then the child classes contain all the “extras” And modify parent methods, if needed 4/15/2017 Wendi Jollymore, ACES

Example Employee Class: Employee Data Members:
first name last name employee id sin phone number address city province postal code Methods: calculateWeeklyPay() printCheck() 4/15/2017 Wendi Jollymore, ACES

Example Child Classes: FullTimeEmployee extends Employee Data Members:
annual salary weeks worked Methods: calculateWeeklyPay() PartTimeEmployee extends Employee Data Members: rate of pay hours worked Methods: calculateWeeklyPay() 4/15/2017 Wendi Jollymore, ACES

Example Note that SalesEmployee and TempSalesEmployee are very similar: SalesEmployee extends Employee Data Members: commission rate weekly sales base pay Methods: calculateWeeklyPay() TempSalesEmployee extends Employee Data Members: commission rate weekly sales Methods: calculateWeeklyPay() 4/15/2017 Wendi Jollymore, ACES

Example We could make Sales Employee a child class of Sales Employee
TempSalesEmployee extends Employee Data Members: commission rate weekly sales Methods: calculateWeeklyPay() SalesEmployee extends TempSalesEmployee Data Members: base pay Methods: calculateWeeklyPay() 4/15/2017 Wendi Jollymore, ACES

Example 4/15/2017 Wendi Jollymore, ACES

One More Example Vessels have a length characteristic and can steer().
Sailboats and Destroyers are Vessels both have length and can steer(). Sailboats have sails and can raiseJib(), but not all vessels have these. Destroyers have deckPlating and can fireGuns(), but not all vessels have these. What would a hierarchy chart look like with the classes Vessel, Sailboat, and Destroyer? 4/15/2017 Wendi Jollymore, ACES

Possible Solution 4/15/2017 Wendi Jollymore, ACES

Exercise For each of the following, which classes would be parent classes, which would be child classes? Draw the hierarchy charts! Loafer, Sneaker, Shoe, Sandal Checking Account, Bank Account, Savings Account Cat, Cow, Feline, Animal, Chicken, Bovine, Avian, Tiger, Yak, Parrot 4/15/2017 Wendi Jollymore, ACES

Robots and Inheritance
Look up the RobotSE class in the documentation (class discussion) 4/15/2017 Wendi Jollymore, ACES