7: Polymorphism. Interface & Implementation. Hands-on Java Seminar 2000 Bruce Eckel page 1. A Circle.
|
|
- Briana Rose
- 5 years ago
- Views:
Transcription
1 Chart 7: Polymorphism A Circle A Square A Line Substitutability 1 A Circle A Square A Line A Triangle Extensibility 2 Interface & Implementation Establishes a common interface Circle Square Line Implementations of the common interface 3 Hands-on Java Seminar 2000 Bruce Eckel page 1
2 Upcasting s = new Circle(); Cast up the inheritance diagram Reference to Circle object Circle Square Line 4 Why Upcast? All true OOP programs have some upcasting somewhere even if it s implicit Upcasting allows us to isolate typespecific details from the bulk of your code, i.e. decoupling Code is simpler to write and read Most important: changes in type do not propagate changes in code 5 You might think s. calls this since s is a We want it to call this since s actually points to a Circle A problem? s = new Circle(); Circle Square Line 6 Hands-on Java Seminar 2000 Bruce Eckel page 2
3 Early Function Call Binding... function call function call function call address address address function body 7 Dynamic Binding in Java... s.draw( ) s.draw( ) s.draw( ) Dynamic Binding Mechanism Same signatures: Circle draw( ) Square draw( ) Line draw( ) 8 //: c07:s.java // Polymorphism in Java. Example class { void { void { class Circle extends { void { System.out.println("Circle."); void { System.out.println("Circle."); class Square extends { void { System.out.println("Square."); void { System.out.println("Square."); class Triangle extends { void { System.out.println("Triangle."); void { System.out.println("Triangle."); 9 Hands-on Java Seminar 2000 Bruce Eckel page 3
4 Example cont. public class s { public static rand() { switch((int)(math.random() * 3)) { default: case 0: return new Circle(); case 1: return new Square(); case 2: return new Triangle(); public static void main(string args[]) { s[] = new [9]; // Fill up the array with shapes: for(int i = 0; i < s.length; i++) s[i] = rand(); // Make polymorphic method calls: for(int i = 0; i < s.length; i++) s[i].; 10 Output: Circle. Triangle. Circle. Circle. Circle. Square. Triangle. Square. Square. 11 Extensibility Instrument Wind Percussion Stringed Woodwind Brass 12 Hands-on Java Seminar 2000 Bruce Eckel page 4
5 Example Example cont. Example cont. class Instrument { public void play() { System.out.println("Instrument.play()"); public String what() { return "Instrument"; public void adjust() { class Wind extends Instrument { public void play() { System.out.println("Wind.play()"); public String what() { return "Wind"; public void adjust() { 13 class Percussion extends Instrument { public void play() { System.out.println("Percussion.play()"); public String what() { return "Percussion"; public void adjust() { class Stringed extends Instrument { public void play() { System.out.println("Stringed.play()"); public String what() { return "Stringed"; public void adjust() { 14 class Brass extends Wind { public void play() { System.out.println("Brass.play()"); public void adjust() { System.out.println("Brass.adjust()"); class Woodwind extends Wind { public void play() { System.out.println("Woodwind.play()"); public String what() { return "Woodwind"; 15 Hands-on Java Seminar 2000 Bruce Eckel page 5
6 Example cont. public class Music3 { // Doesn't care about specific type: static void tune(instrument i) { i.play(); //... static void tuneall(instrument[] e) { for(int i = 0; i < e.length; i++) tune(e[i]); public static void main(string[] args) { Instrument[] orchestra = new Instrument[5]; int i = 0; // Upcasting during addition to the array: orchestra[i++] = new Wind(); orchestra[i++] = new Percussion(); orchestra[i++] = new Stringed(); orchestra[i++] = new Brass(); orchestra[i++] = new Woodwind(); tuneall(orchestra); ///:~ 16 Output: Wind.play() Percussion.play() Stringed.play() Brass.play() Woodwind.play() 17 Abstract classes & abstract methods (can have data and definitions) abstract Instrument abstract ; { /* */ abstract ; Cannot create instances extends extends extends Must define all abstract methods to create instances (or class is still abstract) Wind Percussion Stringed extends Woodwind extends Brass 18 Hands-on Java Seminar 2000 Bruce Eckel page 6
7 Example An abstract Instrument Some methods and data may be defined abstract class Instrument { int i; // storage allocated for each public abstract void play(); public String what() { return "Instrument"; public abstract void adjust(); Rest of the code is the same This maps with C++, may have been an early design Interfaces introduced in the next lecture 19 Constructors & Polymorphism Order of constructor calls class Meal { Meal() { System.out.println("Meal()"); class Bread { Bread() { System.out.println("Bread()"); 20 class Cheese { Cheese() { System.out.println("Cheese()"); class Lettuce { Lettuce() { System.out.println("Lettuce()"); class Lunch extends Meal { Lunch() { System.out.println("Lunch()"); class PortableLunch extends Lunch { PortableLunch() { System.out.println("PortableLunch()"); 21 Hands-on Java Seminar 2000 Bruce Eckel page 7
8 Example cont. public class Sandwich extends PortableLunch { Bread b = new Bread(); Cheese c = new Cheese(); Lettuce l = new Lettuce(); Sandwich() { System.out.println("Sandwich()"); public static void main(string[] args) { new Sandwich(); Meal() Lunch() PortableLunch() Bread() Cheese() Lettuce() Sandwich() 22 Order of Initialization 1) The base-class constructor is called. This step is repeated recursively such that the very root of the hierarchy is constructed first, followed by the nextderived class, etc., until the mostderived class is reached 2) Member initializers are called in the order of declaration 3) The body of the derived-class constructor is called 23 Polymorphism & Constructors Inside constructor, overridden method is used! This can produce incorrect results Overridden method assumes all parts of derived class have been initialized But you re still in the base part of the constructor Derived constructor hasn t been called yet! 24 Hands-on Java Seminar 2000 Bruce Eckel page 8
9 Example Example cont. abstract class Glyph { abstract void ; Glyph() { System.out.println("Glyph() before "); ; System.out.println("Glyph() after "); 25 class RoundGlyph extends Glyph { int radius = 1; RoundGlyph(int r) { radius = r; System.out.println( "RoundGlyph.RoundGlyph(), radius = " + radius); void { System.out.println( "RoundGlyph., radius = " + radius); public class PolyConstructors { public static void main(string[] args) { new RoundGlyph(5); 26 Actual Initialization Operations Glyph() before RoundGlyph., radius = 0 Glyph() after RoundGlyph.RoundGlyph(), radius = 5 1) The storage allocated for the object is initialized to binary zero before anything else happens 2) The base-class constructors are called as described previously. At this point, the overridden draw( ) method is called, which discovers a radius value of zero, due to step one 3) Member initializers are called in the order of declaration 4) The body of the derived-class constructor is called 27 Hands-on Java Seminar 2000 Bruce Eckel page 9
10 Example Is a Circle Square Line Subtyping : re-using the interface Cannot extend the interface Allows full substitutability Talks to Pure Inheritance vs. Extension Circle, Square, message Line, or new type of Useful void f() void g() MoreUseful void f() void g() void u() void v() void w() Is like a Assume this represents a big interface Extending the interface Subclassing : re-using the implementation. Prevents full substitutability Talks to Useful object message 28 Useful part More useful part Downcasting & Run-Time Type Identification (RTTI) Normally try to do everything with upcasting If you extend the class, you must downcast to access extended methods Java casts are always checked at run-time (safe) Upcast: always safe Useful void f() void g() MoreUseful void f() void g() void u() void v() void w() Downcast: must be checked 29 class Useful { public void f() { public void g() { class MoreUseful extends Useful { public void f() { public void g() { public void u() { public void v() { public void w() { Extends the interface 30 Hands-on Java Seminar 2000 Bruce Eckel page 10
11 Example cont. Example cont. Example public class RTTI { public static void main(string args[]) { Useful x[] = { new Useful(), new MoreUseful() ; x[0].f(); x[1].g(); // Compile-time: method not found in Useful: //! x[1].u(); ((MoreUseful)x[1]).u(); // Downcast/RTTI ((MoreUseful)x[0]).u(); // Exception thrown 31 //: c07:transmogrify.java // Dynamically changing the behavior of // an object via composition. abstract class Actor { abstract void act(); class HappyActor extends Actor { public void act() { System.out.println("HappyActor"); class SadActor extends Actor { public void act() { System.out.println("SadActor"); class Stage { Actor a = new HappyActor(); void change() { a = new SadActor(); void go() { a.act(); public class Transmogrify { public static void main(string[] args) { Stage s = new Stage(); s.go(); // Prints "HappyActor" s.change(); s.go(); // Prints "SadActor" ///:~ Also called the State Pattern Hands-on Java Seminar 2000 Bruce Eckel page 11
12 Return to Home Page Summary: The Key to OOP Abstraction Inheritance OOP Polymorphism Not just creating types, but proper behavior in all situations Allows decoupling of code from specific type it s acting on: easy reading, writing & extensibility 34 Click Here to Return to Home Page 35 Hands-on Java Seminar 2000 Bruce Eckel page 12
9: Polymorphism. OOP = abstraction + inheritance + polymorphism
9: Polymorphism OOP = abstraction + inheritance + polymorphism 1 Substitutability A Circle Shape A Square A Line 2 Extensibility A Circle Shape A Square A Line A Triangle 3 Interface & Implementation Shape
More informationUpcasting. Taking an object reference and treating it as a reference to its base type is called upcasting.
7. Polymorphism 1 Upcasting Taking an object reference and treating it as a reference to its base type is called upcasting. class Instrument { public void play () { public class Wind extends Instrument
More informationReusing Classes in Java. Java - Inheritance/Polymorphism/Interface. Inheritance. Simple Example of Composition. Composition.
Reusing Classes in Java Composition A new class is composed of object instances of existing classes. Java - Inheritance/Polymorphism/Interface CS 4354 Summer II 2015 Jill Seaman Fields of one class contain
More informationPolymorphism. OOAD 1998/99 Claudia Niederée, Joachim W. Schmidt Software Systems Institute
Polymorphism Polymorphism Abstract Classes Interfaces OOAD 1998/99 Claudia Niederée, Joachim W. Schmidt Software Systems Institute c.niederee@tu-harburg.de http://www.sts.tu-harburg.de Polymorphism A Circle
More information8. Interfaces & Inner Classes
8. Interfaces & Inner Classes 1 In Chapter 7 you learned about the abstract keyword, which allows you to create one or more methods in a class that have no definitions. The interface keyword produces a
More informationAbstract Classes. Abstract Classes a and Interfaces. Class Shape Hierarchy. Problem AND Requirements. Abstract Classes.
a and Interfaces Class Shape Hierarchy Consider the following class hierarchy Shape Circle Square Problem AND Requirements Suppose that in order to exploit polymorphism, we specify that 2-D objects must
More informationObject Oriented Software Design
Object Oriented Software Design Polymorphism, Abstract Classes, Interfaces Giuseppe Lipari http://retis.sssup.it/~lipari Scuola Superiore Sant Anna Pisa October 3, 2011 G. Lipari (Scuola Superiore Sant
More informationObject Oriented Software Design
Object Oriented Software Design Polymorphism, Abstract Classes, Interfaces Giuseppe Lipari http://retis.sssup.it/~lipari Scuola Superiore Sant Anna Pisa October 28, 2010 G. Lipari (Scuola Superiore Sant
More informationQUIZ. Write the following for the class Bar: Default constructor Constructor Copy-constructor Overloaded assignment oper. Is a destructor needed?
QUIZ Write the following for the class Bar: Default constructor Constructor Copy-constructor Overloaded assignment oper. Is a destructor needed? Or Foo(x), depending on how we want the initialization
More informationPolymorphism. Object Orientated Programming in Java. Benjamin Kenwright
Polymorphism Object Orientated Programming in Java Benjamin Kenwright Quizzes/Labs Every single person should have done Quiz 00 Introduction Quiz 01 - Java Basics Every single person should have at least
More informationInheritance. OOP: Inheritance 1
Inheritance Reuse Extension and intension Class specialization and class extension Inheritance The protected keyword revisited Inheritance and methods Method redefinition An widely used inheritance example
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 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 informationInheritance. Finally, the final keyword. A widely example using inheritance. OOP: Inheritance 1
Inheritance Reuse of code Extension and intension Class specialization and class extension Inheritance The protected keyword revisited Inheritance and methods Method redefinition The composite design pattern
More informationMore About Classes CS 1025 Computer Science Fundamentals I Stephen M. Watt University of Western Ontario
More About Classes CS 1025 Computer Science Fundamentals I Stephen M. Watt University of Western Ontario The Story So Far... Classes as collections of fields and methods. Methods can access fields, and
More informationLecture 36: Cloning. Last time: Today: 1. Object 2. Polymorphism and abstract methods 3. Upcasting / downcasting
Lecture 36: Cloning Last time: 1. Object 2. Polymorphism and abstract methods 3. Upcasting / downcasting Today: 1. Project #7 assigned 2. equals reconsidered 3. Copying and cloning 4. Composition 11/27/2006
More informationInheritance and Interfaces
Inheritance and Interfaces Object Orientated Programming in Java Benjamin Kenwright Outline Review What is Inheritance? Why we need Inheritance? Syntax, Formatting,.. What is an Interface? Today s Practical
More informationSoftware Paradigms (Lesson 3) Object-Oriented Paradigm (2)
Software Paradigms (Lesson 3) Object-Oriented Paradigm (2) Table of Contents 1 Reusing Classes... 2 1.1 Composition... 2 1.2 Inheritance... 4 1.2.1 Extending Classes... 5 1.2.2 Method Overriding... 7 1.2.3
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 informationCH. 2 OBJECT-ORIENTED PROGRAMMING
CH. 2 OBJECT-ORIENTED PROGRAMMING ACKNOWLEDGEMENT: THESE SLIDES ARE ADAPTED FROM SLIDES PROVIDED WITH DATA STRUCTURES AND ALGORITHMS IN JAVA, GOODRICH, TAMASSIA AND GOLDWASSER (WILEY 2016) OBJECT-ORIENTED
More informationThe object-oriented approach goes a step further by providing tools for the programmer to represent elements in the problem space.
1 All programming languages provide abstractions. Assembly language is a small abstraction of the underlying machine. Many imperative languages (FORTRAN, BASIC, and C) are abstractions of assembly language.
More informationInheritance and Polymorphism
Inheritance and Polymorphism Recitation 10/(16,17)/2008 CS 180 Department of Computer Science, Purdue University Project 5 Due Wed, Oct. 22 at 10 pm. All questions on the class newsgroup. Make use of lab
More informationObject Oriented Programming. Java-Lecture 11 Polymorphism
Object Oriented Programming Java-Lecture 11 Polymorphism Abstract Classes and Methods There will be a situation where you want to develop a design of a class which is common to many classes. Abstract class
More informationJava Inheritance. Written by John Bell for CS 342, Spring Based on chapter 6 of Learning Java by Niemeyer & Leuck, and other sources.
Java Inheritance Written by John Bell for CS 342, Spring 2018 Based on chapter 6 of Learning Java by Niemeyer & Leuck, and other sources. Review Which of the following is true? A. Java classes may either
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 informationCS250 Intro to CS II. Spring CS250 - Intro to CS II 1
CS250 Intro to CS II Spring 2017 CS250 - Intro to CS II 1 Topics Virtual Functions Pure Virtual Functions Abstract Classes Concrete Classes Binding Time, Static Binding, Dynamic Binding Overriding vs Redefining
More informationInheritance Motivation
Inheritance Inheritance Motivation Inheritance in Java is achieved through extending classes Inheritance enables: Code re-use Grouping similar code Flexibility to customize Inheritance Concepts Many real-life
More informationC++ Programming: Polymorphism
C++ Programming: Polymorphism 2018 년도 2 학기 Instructor: Young-guk Ha Dept. of Computer Science & Engineering Contents Run-time binding in C++ Abstract base classes Run-time type identification 2 Function
More informationObject-oriented Programming. Object-oriented Programming
2014-06-13 Object-oriented Programming Object-oriented Programming 2014-06-13 Object-oriented Programming 1 Object-oriented Languages object-based: language that supports objects class-based: language
More informationOutline. Java Models for variables Types and type checking, type safety Interpretation vs. compilation. Reasoning about code. CSCI 2600 Spring
Java Outline Java Models for variables Types and type checking, type safety Interpretation vs. compilation Reasoning about code CSCI 2600 Spring 2017 2 Java Java is a successor to a number of languages,
More informationObject-Oriented Programming
2-1 Object-Oriented Programming - OOP uses a number of techniques to achieve reusability and adaptability (able to be modified; adjusting quickly) including: abstraction, encapsulation, inheritance, and
More informationExercise: Singleton 1
Exercise: Singleton 1 In some situations, you may create the only instance of the class. 1 class mysingleton { 2 3 // Will be ready as soon as the class is loaded. 4 private static mysingleton Instance
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 informationChapter 14 Abstract Classes and Interfaces
Chapter 14 Abstract Classes and Interfaces 1 What is abstract class? Abstract class is just like other class, but it marks with abstract keyword. In abstract class, methods that we want to be overridden
More informationOBJECT ORİENTATİON ENCAPSULATİON
OBJECT ORİENTATİON Software development can be seen as a modeling activity. The first step in the software development is the modeling of the problem we are trying to solve and building the conceptual
More informationConcepts of Programming Languages
Concepts of Programming Languages Lecture 10 - Object-Oriented Programming Patrick Donnelly Montana State University Spring 2014 Patrick Donnelly (Montana State University) Concepts of Programming Languages
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 informationBBM 102 Introduction to Programming II Spring Abstract Classes and Interfaces
BBM 102 Introduction to Programming II Spring 2017 Abstract Classes and Interfaces 1 Today Abstract Classes Abstract methods Polymorphism with abstract classes Example project: Payroll System Interfaces
More informationProgramming in C++ Prof. Partha Pratim Das Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur
Programming in C++ Prof. Partha Pratim Das Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur Lecture - 43 Dynamic Binding (Polymorphism): Part III Welcome to Module
More informationMore on inheritance CSCI 136: Fundamentals of Computer Science II Keith Vertanen Copyright 2014
More on inheritance CSCI 136: Fundamentals of Computer Science II Keith Vertanen Copyright 2014 Object hierarchies Overview Several classes inheriting from same base class Concrete versus abstract classes
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 informationCourse Status Polymorphism Containers Exceptions Midterm Review. CS Java. Introduction to Java. Andy Mroczkowski
CS 190 - Java Introduction to Java Andy Mroczkowski uamroczk@cs.drexel.edu Department of Computer Science Drexel University February 11, 2008 / Lecture 4 Outline Course Status Course Information & Schedule
More informationCS107 Handout 37 Spring 2007 May 25, 2007 Introduction to Inheritance
CS107 Handout 37 Spring 2007 May 25, 2007 Introduction to Inheritance Handout written by Julie Zelenski, updated by Jerry. Inheritance is a language property most gracefully supported by the object-oriented
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 informationChapter 10 Classes Continued. Fundamentals of Java
Chapter 10 Classes Continued Objectives Know when it is appropriate to include class (static) variables and methods in a class. Understand the role of Java interfaces in a software system and define an
More informationCS 110 Practice Final Exam originally from Winter, Instructions: closed books, closed notes, open minds, 3 hour time limit.
Name CS 110 Practice Final Exam originally from Winter, 2003 Instructions: closed books, closed notes, open minds, 3 hour time limit. There are 4 sections for a total of 49 points. Part I: Basic Concepts,
More informationJava Class Design. Eugeny Berkunsky, Computer Science dept., National University of Shipbuilding
Java Class Design Eugeny Berkunsky, Computer Science dept., National University of Shipbuilding eugeny.berkunsky@gmail.com http://www.berkut.mk.ua Objectives Implement encapsulation Implement inheritance
More informationCST242 Object-Oriented Programming Page 1
CST4 Object-Oriented Programming Page 4 5 6 67 67 7 8 89 89 9 0 0 0 Objected-Oriented Programming: Objected-Oriented CST4 Programming: CST4 ) Programmers should create systems that ) are easily extensible
More informationOutline. Object Oriented Programming. Course goals. Staff. Course resources. Assignments. Course organization Introduction Java overview Autumn 2003
Outline Object Oriented Programming Autumn 2003 2 Course goals Software design vs hacking Abstractions vs language (syntax) Java used to illustrate concepts NOT a course about Java Prerequisites knowledge
More informationExample: Count of Points
Example: Count of Points 1 class Point { 2... 3 private static int numofpoints = 0; 4 5 Point() { 6 numofpoints++; 7 } 8 9 Point(int x, int y) { 10 this(); // calling the constructor with no input argument;
More informationInclusion Polymorphism
06D-1 Inclusion Polymorphism Polymorphic code Polymorphic references Up- and Down- Casting Polymorphism and values Polymorphic Arrays Inclusion Polymorphism in Context 06D-2 Polymorphism Ad hoc Universal
More informationExample: Count of Points
Example: Count of Points 1 public class Point { 2... 3 private static int numofpoints = 0; 4 5 public Point() { 6 numofpoints++; 7 } 8 9 public Point(int x, int y) { 10 this(); // calling Line 5 11 this.x
More informationInformation System Design (IT60105)
Information System Design (IT60105) Lecture 26 Object-Oriented System Testing Lecture #23 Procedural vs OO paradigms Why not Traditional Testing? Issues Methodology 2 Procedural Vs OO p Procedural Vs OO
More informationPolymorphism. Hsuan-Tien Lin. OOP Class, April 8, Department of CSIE, NTU. H.-T. Lin (NTU CSIE) Polymorphism OOP 04/08/ / 26
Polymorphism Hsuan-Tien Lin Department of CSIE, NTU OOP Class, April 8, 2013 H.-T. Lin (NTU CSIE) Polymorphism OOP 04/08/2013 0 / 26 Polymorphism: The Motto One Thing, Many Shapes... H.-T. Lin (NTU CSIE)
More informationSelected Java Topics
Selected Java Topics Introduction Basic Types, Objects and Pointers Modifiers Abstract Classes and Interfaces Exceptions and Runtime Exceptions Static Variables and Static Methods Type Safe Constants Swings
More informationPolymorphism CSCI 201 Principles of Software Development
Polymorphism CSCI 201 Principles of Software Development Jeffrey Miller, Ph.D. jeffrey.miller@usc.edu Program Outline USC CSCI 201L Polymorphism Based on the inheritance hierarchy, an object with a compile-time
More informationFirst IS-A Relationship: Inheritance
First IS-A Relationship: Inheritance The relationships among Java classes form class hierarchy. We can define new classes by inheriting commonly used states and behaviors from predefined classes. A class
More informationPOLYMORPHISM 2 PART Abstract Classes Static and Dynamic Casting Common Programming Errors
POLYMORPHISM 2 PART Abstract Classes Static and Dynamic Casting Common Programming Errors CSC 330 OO Software Design 1 Abstract Base Classes class B { // base class virtual void m( ) =0; // pure virtual
More informationFundamentals of Object Oriented Programming
INDIAN INSTITUTE OF TECHNOLOGY ROORKEE Fundamentals of Object Oriented Programming CSN- 103 Dr. R. Balasubramanian Associate Professor Department of Computer Science and Engineering Indian Institute of
More informationPOLYMORPHISM 2 PART. Shared Interface. Discussions. Abstract Base Classes. Abstract Base Classes and Pure Virtual Methods EXAMPLE
Abstract Base Classes POLYMORPHISM 2 PART Abstract Classes Static and Dynamic Casting Common Programming Errors class B { // base class virtual void m( ) =0; // pure virtual function class D1 : public
More informationVIRTUAL FUNCTIONS Chapter 10
1 VIRTUAL FUNCTIONS Chapter 10 OBJECTIVES Polymorphism in C++ Pointers to derived classes Important point on inheritance Introduction to virtual functions Virtual destructors More about virtual functions
More informationData Abstraction. Hwansoo Han
Data Abstraction Hwansoo Han Data Abstraction Data abstraction s roots can be found in Simula67 An abstract data type (ADT) is defined In terms of the operations that it supports (i.e., that can be performed
More informationRules and syntax for inheritance. The boring stuff
Rules and syntax for inheritance The boring stuff The compiler adds a call to super() Unless you explicitly call the constructor of the superclass, using super(), the compiler will add such a call for
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 informationPolymorphism. Zimmer CSCI 330
Polymorphism Polymorphism - is the property of OOP that allows the run-time binding of a function's name to the code that implements the function. (Run-time binding to the starting address of the code.)
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 informationCOMP1008 An overview of Polymorphism, Types, Interfaces and Generics
COMP1008 An overview of Polymorphism, Types, Interfaces and Generics Being Object-Oriented Exploiting the combination of: objects classes encapsulation inheritance dynamic binding polymorphism pluggability
More informationIntroduction to Object-Oriented Programming
Introduction to Object-Oriented Programming Review 2: Object-Oriented Programming Christopher Simpkins chris.simpkins@gatech.edu CS 1331 (Georgia Tech) Review 2: Object-Oriented Programming 1 / 14 Topics
More informationGoals of the Lecture OO Programming Principles
Goals of the Lecture OO Programming Principles Object-Oriented Analysis and Design - Fall 1998 n Discuss OO Programming Principles Ð Messages Ð Information Hiding Ð Classes and Instances Ð Inheritance
More informationJava 程式設計入門. 講師 : 陳昭源 CSIE, NTU September 28, 2005
Java 程式設計入門 講師 : 陳昭源 CSIE, NTU September 28, 2005 Outline Floating Point & Decimal Numbers Inheritance Polymorphism Design Principles Abstract Exercise Interface September 28, 2005 Page 2 Floating Point
More informationReusing Classes. Hendrik Speleers
Hendrik Speleers Overview Composition Inheritance Polymorphism Method overloading vs. overriding Visibility of variables and methods Specification of a contract Abstract classes, interfaces Software development
More informationMore Relationships Between Classes
More Relationships Between Classes Inheritance: passing down states and behaviors from the parents to their children Interfaces: grouping the methods, which belongs to some classes, as an interface to
More informationType Hierarchy. Lecture 6: OOP, autumn 2003
Type Hierarchy Lecture 6: OOP, autumn 2003 The idea Many types have common behavior => type families share common behavior organized into a hierarchy Most common on the top - supertypes Most specific at
More informationObject Oriented Java
Object Oriented Java I. Object based programming II. Object oriented programing M. Carmen Fernández Panadero Raquel M. Crespo García Contents Polymorphism Dynamic binding Casting.
More informationStrict Inheritance. Object-Oriented Programming Winter
Strict Inheritance Object-Oriented Programming 236703 Winter 2014-5 1 1 Abstractions Reminder A class is an abstraction over objects A class hierarchy is an abstraction over classes Similar parts of different
More informationProgramming Languages and Techniques (CIS120)
Programming Languages and Techniques (CIS120) Lecture 26 March 23, 2016 Inheritance and Dynamic Dispatch Chapter 24 Inheritance Example public class { private int x; public () { x = 0; } public void incby(int
More informationOOPs Concepts. 1. Data Hiding 2. Encapsulation 3. Abstraction 4. Is-A Relationship 5. Method Signature 6. Polymorphism 7. Constructors 8.
OOPs Concepts 1. Data Hiding 2. Encapsulation 3. Abstraction 4. Is-A Relationship 5. Method Signature 6. Polymorphism 7. Constructors 8. Type Casting Let us discuss them in detail: 1. Data Hiding: Every
More informationInheritance and Polymorphism
Division of Mathematics and Computer Science Maryville College Outline Inheritance 1 Inheritance 2 3 Outline Inheritance 1 Inheritance 2 3 The "is-a" Relationship The "is-a" Relationship Object classification
More informationWhat are the characteristics of Object Oriented programming language?
What are the various elements of OOP? Following are the various elements of OOP:- Class:- A class is a collection of data and the various operations that can be performed on that data. Object- This is
More informationCS 11 java track: lecture 3
CS 11 java track: lecture 3 This week: documentation (javadoc) exception handling more on object-oriented programming (OOP) inheritance and polymorphism abstract classes and interfaces graphical user interfaces
More informationInheritance and Polymorphism
Division of Mathematics and Computer Science Maryville College Outline Inheritance 1 Inheritance 2 3 Outline Inheritance 1 Inheritance 2 3 The "is-a" Relationship Object classification is typically hierarchical.
More informationThe Essence of OOP using Java, Nested Top-Level Classes. Preface
The Essence of OOP using Java, Nested Top-Level Classes Baldwin explains nested top-level classes, and illustrates a very useful polymorphic structure where nested classes extend the enclosing class and
More informationObject-oriented programming. and data-structures CS/ENGRD 2110 SUMMER 2018
Object-oriented programming 1 and data-structures CS/ENGRD 2110 SUMMER 2018 Lecture 4: OO Principles - Polymorphism http://courses.cs.cornell.edu/cs2110/2018su Lecture 3 Recap 2 Good design principles.
More informationInheritance. OOP components. Another Example. Is a Vs Has a. Virtual Destructor rule. Virtual Functions 4/13/2017
OOP components For : COP 3330. Object oriented Programming (Using C++) http://www.compgeom.com/~piyush/teach/3330 Data Abstraction Information Hiding, ADTs Encapsulation Type Extensibility Operator Overloading
More informationInheritance and Polymorphism
Inheritance and Polymorphism Dr. M. G. Abbas Malik Assistant Professor Faculty of Computing and IT (North Jeddah Branch) King Abdulaziz University, Jeddah, KSA mgmalik@kau.edu.sa www.sanlp.org/malik/cpit305/ap.html
More informationPolymorphism. Miri Ben-Nissan (Kopel) Miri Kopel, Bar-Ilan University
Polymorphism Miri Ben-Nissan (Kopel) 1 Shape Triangle Rectangle Circle int main( ) Shape* p = GetShape( ); p->draw( ); Shape* GetShape( ) choose randomly which shape to send back For example: Shape* p
More informationWeek 5-1: ADT Design
Week 5-1: ADT Design Part1. ADT Design Define as class. Every obejects are allocated in heap space. Encapsulation : Data representation + Operation Information Hiding : Object's representation part hides,
More informationInheritance and object compatibility
Inheritance and object compatibility Object type compatibility An instance of a subclass can be used instead of an instance of the superclass, but not the other way around Examples: reference/pointer can
More informationProgramming 2. Inheritance & Polymorphism
Programming 2 Inheritance & Polymorphism Motivation Lame Shape Application public class LameShapeApplication { Rectangle[] therects=new Rectangle[100]; Circle[] thecircles=new Circle[100]; Triangle[] thetriangles=new
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 informationCSE1720. General Info Continuation of Chapter 9 Read Chapter 10 for next week. Second level Third level Fourth level Fifth level
CSE1720 Click to edit Master Week text 08, styles Lecture 13 Second level Third level Fourth level Fifth level Winter 2014! Thursday, Feb 27, 2014 1 General Info Continuation of Chapter 9 Read Chapter
More informationLecture 13: Object orientation. Object oriented programming. Introduction. Object oriented programming. OO and ADT:s. Introduction
Lecture 13: Object orientation Object oriented programming Introduction, types of OO languages Key concepts: Encapsulation, Inheritance, Dynamic binding & polymorphism Other design issues Smalltalk OO
More informationPolymorphism. Arizona State University 1
Polymorphism CSE100 Principles of Programming with C++, Fall 2018 (based off Chapter 15 slides by Pearson) Ryan Dougherty Arizona State University http://www.public.asu.edu/~redoughe/ Arizona State University
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 informationBBM 102 Introduction to Programming II Spring 2017
BBM 102 Introduction to Programming II Spring 2017 Abstract Classes and Interfaces Instructors: Ayça Tarhan, Fuat Akal, Gönenç Ercan, Vahid Garousi Today Abstract Classes Abstract methods Polymorphism
More informationInheritance, polymorphism, interfaces
Inheritance, polymorphism, interfaces "is-a" relationship Similar things (sharing same set of attributes / operations): a group / concept Similar groups (sharing a subset of attributes / operations): a
More informationCSA 1019 Imperative and OO Programming
CSA 1019 Imperative and OO Programming Object Oriented III Mr. Charlie Abela Dept. of of Artificial Intelligence Objectives Getting familiar with Method Overriding Polymorphism Overriding Vs Vs Overloading
More informationTopic 7: Algebraic Data Types
Topic 7: Algebraic Data Types 1 Recommended Exercises and Readings From Haskell: The craft of functional programming (3 rd Ed.) Exercises: 5.5, 5.7, 5.8, 5.10, 5.11, 5.12, 5.14 14.4, 14.5, 14.6 14.9, 14.11,
More informationChapter 2: Java OO II X I A N G Z H A N G
Chapter 2: Java OO II X I A N G Z H A N G j a v a c o s e @ q q. c o m Content 2 Abstraction Abstract Class Interface Inheritance Polymorphism Abstraction What is Abstraction? Abstraction 4 An abstraction
More informationCISC 3115 Modern Programming Techniques Spring 2018 Section TY3 Exam 2 Solutions
Name CISC 3115 Modern Programming Techniques Spring 2018 Section TY3 Exam 2 Solutions 1. a. (25 points) A rational number is a number that can be represented by a pair of integers a numerator and a denominator.
More information