Admin. CS 112 Introduction to Programming. Recap: OOP Analysis. Software Design and Reuse. Recap: OOP Analysis. Inheritance
|
|
- Barnard Pierce
- 6 years ago
- Views:
Transcription
1 Admin CS 112 Introduction to Programming q Class project Inheritance Yang (Richard) Yang Computer Science Department Yale University 308A Watson, Phone: yry@cs.yale.edu 2 Recap: OOP Analysis Recap: OOP Analysis: Controller Structure GeoMap A composition relationship 1 m m 2 Region 1 1 Polygon 1 m Point An association relationship Color q Retrieve region Batch: retrieve list of all regions Specific: retrieve one specific region q Coloring Map properties of a region to a color 3 4 Recap: OOP Analysis q Encapsulation is a key problem solving technique for large, complex problems q A good way to learn more is to read about designs of large-scale OOP software systems Software Design and Reuse q Question: What programming language feature(s) have we covered to allow software reuse? 6 1
2 Outline q Admin and recap q Class inheritance o why and how? A Law Firm Problem: Setting q Consider the following law firm: Work time policy: Employees work 40 hours / week. Pay policy: Employees make a base salary of $50,000 per year, except that o legal secretaries make 10% extra over base per year, o marketers make 20% extra over base per year, o lawyers who reach partner level get bonus. Vacation policy: Employees have 2 weeks of paid vacation leave per year, except that o lawyers get an extra week on top of base, o employees should use a yellow form to apply for leave, except for lawyers who use a pink form. 7 8 A Law Firm Problem: Setting An Employee class Each type of employee has some job functions: Lawyers know how to sue. Marketers know how to advertise. Secretaries know how to prepare ordinary documents. Legal secretaries know how to prepare both ordinary documents and legal documents. 9 public int hours() { return 40; // works 40 hours / week return ; // $50, / year public int vacationdays() { return 10; // 2 weeks' paid vacation public String vacationform() { return "yellow"; // use the yellow form public String tostring() { String result = "Hours: " + hours() + "\n"; result += "Pay: " + pay() + "\n"; result += "Vacation days: " + vacationdays() + "\n"; result += "Vacation Form: " + vacationform() + "\n"; return result; 10 Question: Writing class Secretary Secretary class: Attempt 1 q Secretaries are employees who can prepare documents. 11 public class Secretary { public int hours() { return 40; // works 40 hours / week return ; // $50, / year public int vacationdays() { return 10; // 2 weeks' paid vacation public String vacationform() { return "yellow"; // use the yellow form public String tostring() { String result += "Hours: " + hours() + "\n"; result += "Pay: + pay() + "\n"; result += "Vacation days: " + vacationdays() + "\n"; result += "Vacation Form: " + vacationform() + "\n"; return result; public void preparedoc(string text) { System.out.println( Working on Document: " + text); 12 2
3 Desire for code-sharing Inheritance preparedoc is the only unique behavior in Secretary. We'd like to be able to say: // A class to represent secretaries. public class Secretary { <copy all the contents from the Employee class> public void preparedoc(string text) { System.out.println( Work on Document: " + text); q Inheritance: A way to allow a software developer to reuse classes by deriving a new class from an existing one The existing class is called the parent class, or superclass, or base class The derived class is called the child class or subclass. q As the name implies, the child inherits characteristics of the parent The child class inherits every method and every data field defined for the parent class Inheritance q Inheritance relationships are often shown graphically in a class diagram, with the arrow pointing to the parent class Animal - weight : int + getweight() : int Bird - flyspeed : int + fly() : void Inheritance should create an is-a relationship, meaning the child is a more specific version of the parent Inheritance q The child class inherits all methods and data defined for the parent class Animal - weight : int + getweight() : int Bird - flyspeed : int + fly() : void an animal object weight = 120 getweight() a bird object weight = 100 flyspeed = 30 getweight() fly() Deriving Subclasses: Syntax Exercise: Implement Secretary public class <name> extends <superclass> { For example: class Animal { // class contents private int weight; public int getweight() { class Bird extends Animal { private int flyspeed; public void fly() {;
4 Improved Secretary code Outline // A class to represent secretaries. public class Secretary extends Employee { public void preparedoc(string text) { System.out.println( Working on document: " + text); q Admin and recap q Class inheritance o why and how? o inheritance and object construction q By extending Employee, each Secretary object now: receives methods hours, pay, vacationdays, vacationform, tostring from Employee s definition automatically can be treated as an Employee by client code (seen later) q Now we only write the parts unique to each type Inheritance and Constructor Example q When constructing an object, Java makes sure that the constructor of the parent is first called If no parent constructor called, Java automatically inserts super() as the first statement in the constructor of a child class: public class Secretary extends Employee { public Secretary () { // super() is automatically inserted System.out.println( In Secretary() ); public class Secretary extends Employee { public Secretary() { // super() is automatically inserted System.out.println( In Secretary() ); public Employee() { System.out.println( In Employee() ); public static void main(string[] args) { Secretary seth = new Secretary(); 21 Output: In Employee() In Secretary() 22 Exercise: Add Name to Employee Problem with constructors private String name; public Employee(String name) { this.name = name; q Now that we've added the constructor to the Employee class, our subclasses do not compile. q The short explanation: Once we write a constructor (that requires parameters) in the superclass, we must now write constructors for our employee subclasses as well. q The long explanation: (next couple slides) 23 4
5 The explanation q Constructors aren't inherited. The Employee subclasses don't inherit the public Employee(String name) constructor. q After defining public Employee(String), Java sees that we have a constructor, and will no longer provide the default Employee constructor. i.e., public Employee() is not defined unless we define it explicitly q But public Secretary() { // super() is automatically inserted but not defined // in Employee System.out.println( In Secretary() ); super and Constructor q If you insert super()as the first statement in child s constructor, Java will not insert the default parent constructor: public class Secretary extends Employee { public Secretary(String name) { super(name); System.out.println( In Secretary() ); private String name; public Employee(String name) { System.out.println( In Employee() ); this.name = name; Example: Picture Type q Raster graphics. Basis for image processing. q Set of values. 2D array of Color objects (pixels). q API. Exercise: Extending the Picture Type q Although the Picture class is quite useful already, it misses some useful filtering functions such as grayscale, scaling q Goal: create a new type InstaPic with all of the existing methods defined in Picture, with two additional methods: gray and scale 28 Monochrome Luminance Grayscale Filter q Monochrome luminance. Effective brightness of a color (NTSC formula): Y = 0.299r g b. import java.awt.color; public class Luminance { public static double lum(color c) { int r = c.getred(); int g = c.getgreen(); int b = c.getblue(); return.299*r +.587*g +.114*b; mandrill.jpg 5
6 y Color Compatibility Scaling Filter q Q. Which font colors will be most readable with which background colors on computer and cell phone screens? q A. Rule of thumb: difference in luminance should be public static boolean compatible(color a, Color b) { return Math.abs(lum(a) - lum(b)) >= 128.0; mandrill.jpg (298-by-298) Image Scaling Scaling Filter q Goal. Shrink or enlarge an image to desired size. q Scaling filter. Creates two Picture objects and two windows. q Assume uniform strategy to convert from w s -by-h s to w t -by-h t : (x w s / w t, y h s / h t )? (x,y) source image (w s -by-h s ) target image (w t -by-h t ) mandrill.jpg (298-by-298) % java Scale mandrill.jpg Back to Law Firm: Implementing the Lawyer class: Attempt 1 // A class to represent lawyers. public class Lawyer extends Employee { public void sue() { System.out.println("I'll see you in court!"); Problem q We want lawyers to inherit most behaviors from employee, but we want to replace parts with new behavior: o Lawyers get an extra week of paid vacation over base vacation (a total of 3). o Lawyers use a pink form when applying for vacation leave
7 Defining Methods in the Child Class: Overriding Methods q A child class can (have the option to) override the definition of an inherited method in favor of its own that is, a child can redefine a method that it inherits from its parent the new method must have the same signature as the parent's method, but can have different code in the body Lawyer class // A class to represent lawyers. public class Lawyer extends Employee { // overrides getvacationdays from Employee class public int vacationdays() { return 15; // 3 weeks vacation // overrides getvacationform from Employee class public String vacationform() { return "pink"; q The method invoked is always the one defined in the child class, if the child class refines (overrides) a method public void sue() { System.out.println("I'll see you in court!"); Overloading vs. Overriding Marketer class q Overloading deals with multiple methods in the same class with the same name but different signatures q Overriding deals with two methods, one in a parent class and one in a child class, that have the same signature Exercise: Complete the Marketer class. Marketers can advertise and make 20% more than the base ($60,000 total). q Overloading lets you define a similar operation in different ways for different data q Overriding lets you define a similar operation in different ways for different object types Marketer class A Problem // A class to represent marketers. public class Marketer extends Employee { public void advertise() { System.out.println("Act while supplies last!"); public class Marketer extends Employee { return ;... // override return ; // $60, / year Problem: The Marketer s salaries are based on the Employee s base salary (20% more than base), but the pay code does not reflect this. Problem of design?
8 Changes to Common Behavior q Imagine a company-wide change affecting all employees. q Example: Everyone is given a $10,000 raise due to inflation. The base employee salary is now $60,000. Marketers should now make $72,000. q We must modify our code to reflect this policy change. Modifying the superclass // A class to represent employees in general (20-page manual). public int hours() { return 40; // works 40 hours / week return ;... // $60, / year q Issue: the Marketer subclass is still incorrect. It has overridden pay to return another value. q Requirement: derived behavior is based on base behavior Calling overridden methods Subclasses can call overridden methods with super super.<method>(<parameters>) Improved subclasses public class Marketer extends Employee { public void advertise() { System.out.println("Act now while supplies last!"); Exercise: Modify Marketer to derive pay for marketers from base pay. // override and invoke the parent s version return super.pay() * 1.2; Exercise: Revise Lawyer to Maintain Consistency Solution public class Lawyer extends Employee { public String vacationform() { return "pink"; public int vacationdays() { return super.vacationdays() + 5; public void sue() { System.out.println("I'll see you in court!");
CS 112 Introduction to Programming
CS 112 Introduction to Programming (Spring 2012) Lecture #31: Software Reuse through Inheritance Zhong Shao Department of Computer Science Yale University Office: 314 Watson http://flint.cs.yale.edu/cs112
More informationCS 112 Introduction to Programming
CS 112 Introduction to Programming Inheritance Hierarchy; Polymorphism Yang (Richard) Yang Computer Science Department Yale University 308A Watson, Phone: 432-6400 Email: yry@cs.yale.edu Admin q Class
More informationAdmin. q Admin and recap q Class inheritance
Admin CS 112 Introduction to Programming q Class project Please work on forming teams Inheritance Hierarchy; Polymorphism Yang (Richard) Yang Computer Science Department Yale University 308A Watson, Phone:
More informationTopic 31 - inheritance
Topic 31 - inheritance Hierarchies Hierarchies used to organize organizations and information Kingdom - Animalia More general Phylum - Chordata Class- Mammalia Order - Carnivora Family - Felidae Genus
More informationBuilding Java Programs
Building Java Programs Chapter 9 Inheritance, Polymorphism; reading: 9.2 2 The software crisis software engineering: The practice of developing, designing, documenting, testing large computer programs.
More informationAP Computer Science. Interactions with superclass
AP Computer Science Interactions with superclass Levels of inheritance Multiple levels of inheritance can represent situations Employee Lawyer Marketer Secretary Legal Secretary 2 Changes to common behavior
More informationLecture 15: Inheritance II
Lecture 15: Inheritance II Building Java Programs: A Back to Basics Approach by Stuart Reges and Marty Stepp Copyright (c) Pearson 2013. All rights reserved. Interacting with the superclass Changes to
More informationCS 112 Introduction to Programming. (Spring 2012)
CS 112 Introduction to Programming (Spring 2012) Lecture #32: Inheritance and Class Hierarchy Zhong Shao Department of Computer Science Yale University Office: 314 Watson http://flint.cs.yale.edu/cs112
More informationInheritance. Writing classes. Writing more classes. Why are they very similar? Employee class. Secretary class. Readings: 9.1
Writing classes Inheritance Readings: 9.1 Write an Employee class with methods that return values for the following properties of employees at a particular company: Work week: 40 hours Annual salary: $40,000
More information3.1 Using Data Types. Data Type. Constructors and Methods. Objects. Data type. Set of values and operations on those values.
Data Types 3.1 Using Data Types Data type. Set of values and operations on those values. Primitive types. Ops directly translate to machine instructions. Data Type boolean int double Set of Values true,
More informationAP Computer Science. Gridworld, inheritance
AP Computer Science Gridworld, inheritance 1 Interfaces Establish a is-a relationship without code sharing One way of addressing the software crisis Allow dividing up a complex task all developers code
More informationInheritance -- Introduction
Inheritance -- Introduction Another fundamental object-oriented technique is called inheritance, which, when used correctly, supports reuse and enhances software designs Chapter 8 focuses on: the concept
More informationECE 122. Engineering Problem Solving with Java
ECE 122 Engineering Problem Solving with Java Lecture 17 Inheritance Overview Problem: Can we create bigger classes from smaller ones without having to repeat information? Subclasses: a class inherits
More informationInheritance. Inheritance Reserved word protected Reserved word super Overriding methods Class Hierarchies Reading for this lecture: L&L
Inheritance Inheritance Reserved word protected Reserved word super Overriding methods Class Hierarchies Reading for this lecture: L&L 9.1 9.4 1 Inheritance Inheritance allows a software developer to derive
More informationInheritance. = way of forming new classes based on existing ones = way to share/reuse codebetween two or more classes
Inheritance 49 Inheritance Definitions = way of forming new classes based on existing ones = way to share/reuse codebetween two or more classes Terminology superclass: Parent class being inherited from
More informationInheritance and Polymorphism
Object Oriented Programming Designed and Presented by Dr. Ayman Elshenawy Elsefy Dept. of Systems & Computer Eng.. Al-Azhar University Website: eaymanelshenawy.wordpress.com Email : eaymanelshenawy@azhar.edu.eg
More informationAdmin. CS 112 Introduction to Programming. Admin. Admin. Recap. Recap: Polymorphism and Arrays. the Google doc to record the teaming
Admin CS 112 Introduction to Programming Critters/Event-Driven Programming Yang (Richard) Yang Computer Science Department Yale University 308A Watson, Phone: 432-6400 Email: yry@cs.yale.edu q Class project
More informationCS 112 Introduction to Programming
CS 112 Introduction to Programming Critters/Event-Driven Programming Yang (Richard) Yang Computer Science Department Yale University 308A Watson, Phone: 432-6400 Email: yry@cs.yale.edu Admin q Class project
More informationProgramming Abstractions
Programming Abstractions C S 1 0 6 X Cynthia Lee This photograph was taken by Glenn Francis (User:Toglenn) and released under the license(s) stated below. You are free to use it as long as you credit me
More informationClasses and Inheritance Extending Classes, Chapter 5.2
Classes and Inheritance Extending Classes, Chapter 5.2 Dr. Yvon Feaster Inheritance Inheritance defines a relationship among classes. Key words often associated with inheritance are extend and implements.
More informationObject Oriented Programming is a programming method that combines: Advantage of Object Oriented Programming
Overview of OOP Object Oriented Programming is a programming method that combines: a) Data b) Instructions for processing that data into a self-sufficient object that can be used within a program or in
More informationOVERRIDING. 7/11/2015 Budditha Hettige 82
OVERRIDING 7/11/2015 (budditha@yahoo.com) 82 What is Overriding Is a language feature Allows a subclass or child class to provide a specific implementation of a method that is already provided by one of
More informationBig software. code reuse: The practice of writing program code once and using it in many contexts.
Inheritance Big software software engineering: The practice of conceptualizing, designing, developing, documenting, and testing largescale computer programs. Large-scale projects face many issues: getting
More informationProgramming Abstractions
Programming Abstractions C S 1 0 6 B Cynthia Lee Inheritance Topics Inheritance The basics Example: Stanford GObject class Polymorphism Inheritance What? Why? How? Inheritance: what? is-a relationship:
More informationObject Oriented Features. Inheritance. Inheritance. CS257 Computer Science I Kevin Sahr, PhD. Lecture 10: Inheritance
CS257 Computer Science I Kevin Sahr, PhD Lecture 10: Inheritance 1 Object Oriented Features For a programming language to be called object oriented it should support the following features: 1. objects:
More informationThe software crisis. code reuse: The practice of writing program code once and using it in many contexts.
Inheritance The software crisis software engineering: The practice of conceptualizing, designing, developing, documenting, and testing largescale computer programs. Large-scale projects face many issues:
More informationWhat is Inheritance?
Inheritance 1 Agenda What is and Why Inheritance? How to derive a sub-class? Object class Constructor calling chain super keyword Overriding methods (most important) Hiding methods Hiding fields Type casting
More informationCOMPUTER SCIENCE DEPARTMENT PICNIC. Operations. Push the power button and hold. Once the light begins blinking, enter the room code
COMPUTER SCIENCE DEPARTMENT PICNIC Welcome to the 2016-2017 Academic year! Meet your faculty, department staff, and fellow students in a social setting. Food and drink will be provided. When: Saturday,
More informationADTs, Interfaces, Inheritance & Polymorphism
ADTs, Interfaces, Inheritance & Polymorphism Maria Zontak Superclass Subclass Credits: CS143 course I taught in North Seattle College CS5004 course built by Dr. Therapon Skotiniotis here in Northeastern
More informationThe software crisis. code reuse: The practice of writing program code once and using it in many contexts.
Inheritance The software crisis software engineering: The practice of conceptualizing, designing, developing, documenting, and testing largescale computer programs. Large-scale projects face many issues:
More informationINHERITANCE & POLYMORPHISM. INTRODUCTION IB DP Computer science Standard Level ICS3U. INTRODUCTION IB DP Computer science Standard Level ICS3U
C A N A D I A N I N T E R N A T I O N A L S C H O O L O F H O N G K O N G INHERITANCE & POLYMORPHISM P2 LESSON 12 P2 LESSON 12.1 INTRODUCTION inheritance: OOP allows a programmer to define new classes
More information3.1 Data Types. Abstract Data Types. Objects. Object. Holds a data type value; variable name refers to object.
3.1 Data Types any program you might want to write objects create your own data types functions and modules graphics, sound, and image I/O arrays conditionals and loops Math primitive data types text I/O
More informationCS-202 Introduction to Object Oriented Programming
CS-202 Introduction to Object Oriented Programming California State University, Los Angeles Computer Science Department Lecture III Inheritance and Polymorphism Introduction to Inheritance Introduction
More informationComputer Science II (20073) Week 1: Review and Inheritance
Computer Science II 4003-232-01 (20073) Week 1: Review and Inheritance Richard Zanibbi Rochester Institute of Technology Review of CS-I Hardware and Software Hardware Physical devices in a computer system
More informationBBM 102 Introduction to Programming II
BBM 102 Introduction to Programming II Spring 2018 Polymorphism 1 Today Inheritance revisited Comparing objects : equals() method instanceof keyword Polymorphism 2 Visibility Revisited All variables and
More informationCS 106B Lecture 27: Inheritance and Polymorphism in C++
CS 106B Lecture 27: Inheritance and Polymorphism in C++ Monday, June 4, 2018 Programming Abstractions Spring 2018 Stanford University Computer Science Department Lecturer: Chris Gregg reading: Programming
More informationObject Orientated Programming Details COMP360
Object Orientated Programming Details COMP360 The ancestor of every action is a thought. Ralph Waldo Emerson Three Pillars of OO Programming Inheritance Encapsulation Polymorphism Inheritance Inheritance
More informationIntroduction to OOP with Java. Instructor: AbuKhleif, Mohammad Noor Sep 2017
Introduction to OOP with Java Instructor: AbuKhleif, Mohammad Noor Sep 2017 Lecture 11: Inheritance and Polymorphism Part 1 Instructor: AbuKhleif, Mohammad Noor Sep 2017 Instructor AbuKhleif, Mohammad
More informationCREATED BY: Muhammad Bilal Arslan Ahmad Shaad. JAVA Chapter No 5. Instructor: Muhammad Naveed
CREATED BY: Muhammad Bilal Arslan Ahmad Shaad JAVA Chapter No 5 Instructor: Muhammad Naveed Muhammad Bilal Arslan Ahmad Shaad Chapter No 5 Object Oriented Programming Q: Explain subclass and inheritance?
More informationContents. I. Classes, Superclasses, and Subclasses. Topic 04 - Inheritance
Contents Topic 04 - Inheritance I. Classes, Superclasses, and Subclasses - Inheritance Hierarchies Controlling Access to Members (public, no modifier, private, protected) Calling constructors of superclass
More informationCISC 3115 TY3. C09a: Inheritance. Hui Chen Department of Computer & Information Science CUNY Brooklyn College. 9/20/2018 CUNY Brooklyn College
CISC 3115 TY3 C09a: Inheritance Hui Chen Department of Computer & Information Science CUNY Brooklyn College 9/20/2018 CUNY Brooklyn College 1 Outline Inheritance Superclass/supertype, subclass/subtype
More informationChapter 7. Inheritance
Chapter 7 Inheritance Introduction to Inheritance Inheritance is one of the main techniques of objectoriented programming (OOP) Using this technique, a very general form of a class is first defined and
More informationINHERITANCE. Spring 2019
INHERITANCE Spring 2019 INHERITANCE BASICS Inheritance is a technique that allows one class to be derived from another A derived class inherits all of the data and methods from the original class Suppose
More informationLecture Contents CS313D: ADVANCED PROGRAMMING LANGUAGE. What is Inheritance?
CS313D: ADVANCED PROGRAMMING LANGUAGE Computer Science department Lecture 5: Inheritance & Polymorphism Lecture Contents 2 What is Inheritance? Super-class & sub class Protected members Creating subclasses
More informationProgramming II (CS300)
1 Programming II (CS300) Chapter 05: Inheritance and Interfaces MOUNA KACEM mouna@cs.wisc.edu Fall 2018 Inheritance and Interfaces 2 Introduction Inheritance and Class Hierarchy Polymorphism Abstract Classes
More informationJava and OOP. Part 3 Extending classes. OOP in Java : W. Milner 2005 : Slide 1
Java and OOP Part 3 Extending classes OOP in Java : W. Milner 2005 : Slide 1 Inheritance Suppose we want a version of an existing class, which is slightly different from it. We want to avoid starting again
More informationRelationships Between Real Things CSE 143. Common Relationship Patterns. Employee. Supervisor
CSE 143 Object & Class Relationships Inheritance Reading: Ch. 9, 14 Relationships Between Real Things Man walks dog Dog strains at leash Dog wears collar Man wears hat Girl feeds dog Girl watches dog Dog
More informationBuilding custom components IAT351
Building custom components IAT351 Week 1 Lecture 1 9.05.2012 Lyn Bartram lyn@sfu.ca Today Review assignment issues New submission method Object oriented design How to extend Java and how to scope Final
More informationCS313D: ADVANCED PROGRAMMING LANGUAGE
CS313D: ADVANCED PROGRAMMING LANGUAGE Computer Science department Lecture 5: Inheritance & Polymorphism Lecture Contents 2 What is Inheritance? Super-class & sub class Protected members Creating subclasses
More informationDay 4. COMP1006/1406 Summer M. Jason Hinek Carleton University
Day 4 COMP1006/1406 Summer 2016 M. Jason Hinek Carleton University today s agenda assignments questions about assignment 2 a quick look back constructors signatures and overloading encapsulation / information
More informationA Foundation for Programming
3.1 Using Data Types Introduction to Programming in Java: An Interdisciplinary Approach Robert Sedgewick and Kevin Wayne Copyright 2008 11/20/09 11/20/09 A Foundation for Programming any program you might
More informationRelationships Between Real Things. CSE 143 Java. Common Relationship Patterns. Composition: "has a" CSE143 Sp Student.
CSE 143 Java Object & Class Relationships Inheritance Reading: Ch. 9, 14 Relationships Between Real Things Man walks dog Dog strains at leash Dog wears collar Man wears hat Girl feeds dog Girl watches
More informationCS5000: Foundations of Programming. Mingon Kang, PhD Computer Science, Kennesaw State University
CS5000: Foundations of Programming Mingon Kang, PhD Computer Science, Kennesaw State University Inheritance Three main programming mechanisms that constitute object-oriented programming (OOP) Encapsulation
More informationInheritance. Inheritance allows the following two changes in derived class: 1. add new members; 2. override existing (in base class) methods.
Inheritance Inheritance is the act of deriving a new class from an existing one. Inheritance allows us to extend the functionality of the object. The new class automatically contains some or all methods
More information24. Inheritance. Java. Fall 2009 Instructor: Dr. Masoud Yaghini
24. Inheritance Java Fall 2009 Instructor: Dr. Masoud Yaghini Outline Superclasses and Subclasses Using the super Keyword Overriding Methods The Object Class References Superclasses and Subclasses Inheritance
More informationRelationships Between Real Things CSC 143. Common Relationship Patterns. Composition: "has a" CSC Employee. Supervisor
CSC 143 Object & Class Relationships Inheritance Reading: Ch. 10, 11 Relationships Between Real Things Man walks dog Dog strains at leash Dog wears collar Man wears hat Girl feeds dog Girl watches dog
More information22. Inheritance. Java. Summer 2008 Instructor: Dr. Masoud Yaghini
22. Inheritance Java Summer 2008 Instructor: Dr. Masoud Yaghini Outline Superclasses and Subclasses Using the super Keyword Overriding Methods The Object Class References Inheritance Object-oriented programming
More informationCMSC 132: Object-Oriented Programming II. Inheritance
CMSC 132: Object-Oriented Programming II Inheritance 1 Mustang vs Model T Ford Mustang Ford Model T 2 Interior: Mustang vs Model T 3 Frame: Mustang vs Model T Mustang Model T 4 Compaq: old and new Price:
More informationJava Object Oriented Design. CSC207 Fall 2014
Java Object Oriented Design CSC207 Fall 2014 Design Problem Design an application where the user can draw different shapes Lines Circles Rectangles Just high level design, don t write any detailed code
More informationCS111: PROGRAMMING LANGUAGE II
1 CS111: PROGRAMMING LANGUAGE II Computer Science Department Lecture 8(b): Abstract classes & Polymorphism Lecture Contents 2 Abstract base classes Concrete classes Polymorphic processing Dr. Amal Khalifa,
More informationPractice for Chapter 11
Practice for Chapter 11 MULTIPLE CHOICE. Choose the one alternative that best completes the statement or answers the question. 1) Object-oriented programming allows you to derive new classes from existing
More informationInheritance in java is a mechanism in which one object acquires all the properties and behaviors of parent object.
Inheritance in Java 1. Inheritance 2. Types of Inheritance 3. Why multiple inheritance is not possible in java in case of class? Inheritance in java is a mechanism in which one object acquires all the
More informationCS1150 Principles of Computer Science Objects and Classes
CS1150 Principles of Computer Science Objects and Classes Yanyan Zhuang Department of Computer Science http://www.cs.uccs.edu/~yzhuang CS1150 UC. Colorado Springs Object-Oriented Thinking Chapters 1-8
More informationC08: Inheritance and Polymorphism
CISC 3120 C08: Inheritance and Polymorphism Hui Chen Department of Computer & Information Science CUNY Brooklyn College 9/19/2017 CUNY Brooklyn College 1 Outline Recap and issues Project progress? Practice
More informationITI Introduction to Computing II
ITI 1121. Introduction to Computing II Marcel Turcotte School of Electrical Engineering and Computer Science Inheritance Introduction Generalization/specialization Version of January 20, 2014 Abstract
More informationGraphical Interface and Application (I3305) Semester: 1 Academic Year: 2017/2018 Dr Antoun Yaacoub
Lebanese University Faculty of Science Computer Science BS Degree Graphical Interface and Application (I3305) Semester: 1 Academic Year: 2017/2018 Dr Antoun Yaacoub 2 Crash Course in JAVA Classes A Java
More informationComp 249 Programming Methodology
Comp 249 Programming Methodology Chapter 7 - Inheritance Part A Dr. Aiman Hanna Department of Computer Science & Software Engineering Concordia University, Montreal, Canada These slides has been extracted,
More informationName Return type Argument list. Then the new method is said to override the old one. So, what is the objective of subclass?
1. Overriding Methods A subclass can modify behavior inherited from a parent class. A subclass can create a method with different functionality than the parent s method but with the same: Name Return type
More informationProgramming in C# Inheritance and Polymorphism
Programming in C# Inheritance and Polymorphism C# Classes Classes are used to accomplish: Modularity: Scope for global (static) methods Blueprints for generating objects or instances: Per instance data
More informationBBM 102 Introduction to Programming II Spring 2017
BBM 102 Introduction to Programming II Spring 2017 Polymorphism Instructors: Ayça Tarhan, Fuat Akal, Gönenç Ercan, Vahid Garousi TAs: Selma Dilek, Selim Yılmaz, Selman Bozkır 1 Today Inheritance revisited
More informationOverview. Lecture 7: Inheritance and GUIs. Inheritance. Example 9/30/2008
Overview Lecture 7: Inheritance and GUIs Written by: Daniel Dalevi Inheritance Subclasses and superclasses Java keywords Interfaces and inheritance The JComponent class Casting The cosmic superclass Object
More informationENCAPSULATION AND POLYMORPHISM
MODULE 3 ENCAPSULATION AND POLYMORPHISM Objectives > After completing this lesson, you should be able to do the following: Use encapsulation in Java class design Model business problems using Java classes
More informationInheritance. Transitivity
Inheritance Classes can be organized in a hierarchical structure based on the concept of inheritance Inheritance The property that instances of a sub-class can access both data and behavior associated
More informationTopic 7: Inheritance. Reading: JBD Sections CMPS 12A Winter 2009 UCSC
Topic 7: Inheritance Reading: JBD Sections 7.1-7.6 1 A Quick Review of Objects and Classes! An object is an abstraction that models some thing or process! Examples of objects:! Students, Teachers, Classes,
More informationAP CS Unit 6: Inheritance Notes
AP CS Unit 6: Inheritance Notes Inheritance is an important feature of object-oriented languages. It allows the designer to create a new class based on another class. The new class inherits everything
More informationITI Introduction to Computing II
ITI 1121. Introduction to Computing II Marcel Turcotte School of Electrical Engineering and Computer Science Inheritance Introduction Generalization/specialization Version of January 21, 2013 Abstract
More informationUsing data types. Overview. Data types. Why custom data types? Using data types. A slight diversion: Methods. Data type. Data type
Using data types Using data types Overview What they are Constructors and methods Application Programming Interface (API) Image processing Text processing A slight diversion: Incrementing and decrementing
More informationInheritance Chapter 8. Instructor: Scott Kristjanson CMPT 125/125 SFU Burnaby, Fall 2013
Inheritance Chapter 8 Instructor: Scott Kristjanson CMPT 125/125 SFU Burnaby, Fall 2013 2 Scope Class Inheritance: Deriving classes Method overriding Class hierarchies Abstract classes Visibility and inheritance
More informationInheritance. Lecture 11 COP 3252 Summer May 25, 2017
Inheritance Lecture 11 COP 3252 Summer 2017 May 25, 2017 Subclasses and Superclasses Inheritance is a technique that allows one class to be derived from another. A derived class inherits all of the data
More informationOverriding Variables: Shadowing
Overriding Variables: Shadowing We can override methods, can we override instance variables too? Answer: Yes, it is possible, but not recommended Overriding an instance variable is called shadowing, because
More informationBasic Object-Oriented Concepts. 5-Oct-17
Basic Object-Oriented Concepts 5-Oct-17 Concept: An object has behaviors In old style programming, you had: data, which was completely passive functions, which could manipulate any data An object contains
More informationWhat is Polymorphism? CS 112 Introduction to Programming
What is Polymorphism? CS 112 Introduction to Programming (Spring 2012) q polymorphism: Ability for the same code to be used with different types of objects and behave differently with each. Lecture #33:
More informationCS 106X Lecture 26: Inheritance and Polymorphism in C++
CS 106X Lecture 26: Inheritance and Polymorphism in C++ Monday, March 13, 2017 Programming Abstractions (Accelerated) Winter 2017 Stanford University Computer Science Department Lecturer: Chris Gregg reading:
More informationMore About Objects. Zheng-Liang Lu Java Programming 255 / 282
More About Objects Inheritance: passing down states and behaviors from the parents to their children. Interfaces: requiring objects for the demanding methods which are exposed to the outside world. Polymorphism
More informationProgramming overview
Programming overview Basic Java A Java program consists of: One or more classes A class contains one or more methods A method contains program statements Each class in a separate file MyClass defined in
More informationAccelerating Information Technology Innovation
Accelerating Information Technology Innovation http://aiti.mit.edu Cali, Colombia Summer 2012 Lesson 09 Inheritance What is Inheritance? In the real world: We have general terms for objects in the real
More information9/10/2018 Programming Data Structures Inheritance
9/10/2018 Programming Data Structures Inheritance 1 Email me if the office door is closed 2 Introduction to Arrays An array is a data structure used to process a collection of data that is all of the same
More informationLecture 18 CSE11 Fall 2013 Inheritance
Lecture 18 CSE11 Fall 2013 Inheritance What is Inheritance? Inheritance allows a software developer to derive a new class from an existing one write code once, use many times (code reuse) Specialization
More informationChapter 5. Inheritance
Chapter 5 Inheritance Objectives Know the difference between Inheritance and aggregation Understand how inheritance is done in Java Learn polymorphism through Method Overriding Learn the keywords : super
More informationHAS-A Relationship. If A uses B, then it is an aggregation, stating that B exists independently from A.
HAS-A Relationship Association is a weak relationship where all objects have their own lifetime and there is no ownership. For example, teacher student; doctor patient. If A uses B, then it is an aggregation,
More informationMore on Inheritance. Interfaces & Abstract Classes
More on Inheritance Interfaces & Abstract Classes Java interfaces A Java interface is used to specify minimal functionality that a client requires of a server. A Java interface contains: method specifications
More informationPROGRAMMING LANGUAGE 2
31/10/2013 Ebtsam Abd elhakam 1 PROGRAMMING LANGUAGE 2 Java lecture (7) Inheritance 31/10/2013 Ebtsam Abd elhakam 2 Inheritance Inheritance is one of the cornerstones of object-oriented programming. It
More informationCOP 3330 Final Exam Review
COP 3330 Final Exam Review I. The Basics (Chapters 2, 5, 6) a. comments b. identifiers, reserved words c. white space d. compilers vs. interpreters e. syntax, semantics f. errors i. syntax ii. run-time
More informationFull file at Chapter 2 - Inheritance and Exception Handling
Chapter 2 - Inheritance and Exception Handling TRUE/FALSE 1. The superclass inherits all its properties from the subclass. ANS: F PTS: 1 REF: 76 2. Private members of a superclass can be accessed by a
More informationAP Computer Science Chapter 10 Implementing and Using Classes Study Guide
AP Computer Science Chapter 10 Implementing and Using Classes Study Guide 1. A class that uses a given class X is called a client of X. 2. Private features of a class can be directly accessed only within
More informationUniversity of British Columbia CPSC 111, Intro to Computation 2009W2: Jan-Apr 2010 Tamara Munzner
University of British Columbia CPSC 111, Intro to Computation 2009W2: Jan-Apr 2010 Tamara Munzner Inheritance II Lecture 34, Mon Apr 12 2010 borrowing from slides by Kurt Eiselt http://www.cs.ubc.ca/~tmm/courses/111-10
More information9. Abstract Data Types
COMPUTER SCIENCE S E D G E W I C K / W A Y N E 9. Abstract Data Types Section 3.1 http://introcs.cs.princeton.edu COMPUTER SCIENCE S E D G E W I C K / W A Y N E 9. Abstract Data Types Overview Color Image
More informationHAS-A Relationship. Association is a relationship where all objects have their own lifecycle and there is no owner.
HAS-A Relationship Association is a relationship where all objects have their own lifecycle and there is no owner. For example, teacher student Aggregation is a specialized form of association where all
More informationCS313D: ADVANCED PROGRAMMING LANGUAGE
CS313D: ADVANCED PROGRAMMING LANGUAGE Computer Science department Lecture 4(b): Inheritance & Polymorphism Lecture Contents What is Inheritance? Super-class & sub class The object class Using extends keyword
More informationInheritance (Part 5) Odds and ends
Inheritance (Part 5) Odds and ends 1 Static Methods and Inheritance there is a significant difference between calling a static method and calling a non-static method when dealing with inheritance there
More information