1 OOP : main concepts Polymorphism. 2 OOP : main concepts  The main concepts:  In a superclass –public members Accessible anywhere program has a reference.

Slides:



Advertisements
Similar presentations
INHERITANCE BASICS Reusability is achieved by INHERITANCE
Advertisements

INTERFACES IN JAVA 1.Java Does not support Multiple Inheritance directly. Multiple inheritance can be achieved in java by the use of interfaces. 2.We need.
Chapter 19 - Inheritance Associate Prof. Yuh-Shyan Chen Dept. of Computer Science and Information Engineering National Chung-Cheng University.
 2003 Prentice Hall, Inc. All rights reserved. 1 Chapter 10 - Object-Oriented Programming: Polymorphism Outline 10.1 Introduction 10.2 Relationships Among.
Esempi Ereditarietà1 // Definition of class Point #ifndef POINT_H #define POINT_H #include using std::ostream; class Point { friend ostream &operator
 2002 Prentice Hall. All rights reserved. 1 Chapter 9 – Object-Oriented Programming: Inheritance Outline 9.1Introduction 9.2Base Classes and Derived Classes.
1 Chapter 9 - Object-Oriented Programming: Inheritance Outline 9.1 Introduction 9.2 Superclasses and Subclasses 9.3 protected Members 9.4 Relationship.
 2000 Prentice Hall, Inc. All rights reserved. Chapter 27 - Java Object-Oriented Programming Outline 27.1Introduction 27.2Superclasses and Subclasses.
 2003 Prentice Hall, Inc. All rights reserved. 1 Chapter 9 - Object-Oriented Programming: Inheritance Outline 9.1 Introduction 9.2 Superclasses and Subclasses.
Object-Oriented Programming Outline Introduction Superclasses and Subclasses protected Members Relationship between Superclass Objects and Subclass Objects.
© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. Chapter 27 - Java Object-Oriented Programming Outline.
 2002 Prentice Hall. All rights reserved. Some slides modified by LL 1 Chapter 9 – Object-Oriented Programming: Inheritance Outline 9.1Introduction 9.2Base.
1 Evan Korth New York University abstract classes and casting Professor Evan Korth New York University.
 2000 Prentice Hall, Inc. All rights reserved. Chapter 19 - Inheritance Outline 19.1Introduction 19.2Inheritance: Base Classes and Derived Classes 19.3Protected.
1 Evan Korth New York University Inheritance and Polymorphism Professor Evan Korth New York University.
1 Overloading vs. Overriding b Don't confuse the concepts of overloading and overriding b Overloading deals with multiple methods in the same class with.
1 Evan Korth New York University Inheritance and Polymorphism Professor Evan Korth New York University.
 2000 Prentice Hall, Inc. All rights reserved. 1 Chapter 9 - Inheritance Outline 9.1Introduction 9.2Inheritance: Base Classes and Derived Classes 9.3.
Chapter 8 – Sections covered
Chapter 9 - Object-Oriented Programming
Chapter 6 Class Inheritance F Superclasses and Subclasses F Keywords: super F Overriding methods F The Object Class F Modifiers: protected, final and abstract.
 2002 Prentice Hall. All rights reserved. Page 1 Chapter 9 - Object-Oriented Programming 9.10 Introduction to Polymorphism 9.11 Type Fields and switch.
Interfaces Need arising from software engineering –Disparate groups of programmers need to agree to a “contract” that spells out how their software interacts.
Advanced Programming Collage of Information Technology University of Palestine, Gaza Prepared by: Mahmoud Rafeek Alfarra Lecture 1: Course overview.
 2002 Prentice Hall. All rights reserved. Chapter 9 - Object-Oriented Programming Outline 9.1 Introduction 9.2 Superclasses and Subclasses 9.3 protected.
Java Quiz Bowl A fun review of the Java you should know from CMPT 201 If you don’t know the answers - this week is for you to study up!
 2002 Prentice Hall. All rights reserved. 1 Chapter 9 – Object-Oriented Programming: Inheritance Outline 9.1Introduction 9.2Base Classes and Derived Classes.
 2002 Prentice Hall. All rights reserved. 1 Chapter 9 – Object-Oriented Programming: Inheritance Outline 9.1Introduction 9.2 Base Classes and Derived.
© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. Chapter 19 - C++ Inheritance Outline 19.1Introduction.
Liang,Introduction to Java Programming,revised by Dai-kaiyu 1 Chapter 8 Inheritance and Polymorphism 一切皆有缘起.
Outline §Review of the last class l class variables and methods l method overloading and overriding §Inheritance and polymorphism l polymorphism l abstract.
 2003 Prentice Hall, Inc. All rights reserved Case Study: Three-Level Inheritance Hierarchy Three level point/circle/cylinder hierarchy –Point.
 2000 Prentice Hall, Inc. All rights reserved. Chapter 19 – Inheritance Part 2 Outline 19.8Direct Base Classes and Indirect Base Classes 19.9Using Constructors.
Inheritance & Polymorphism1. 2 Introduction Besides composition, another form of reuse is inheritance. With inheritance, an object can inherit behavior.
 2000 Prentice Hall, Inc. All rights reserved. 1 Chapter 9 - Inheritance Outline 9.1Introduction 9.2Inheritance: Base Classes and Derived Classes 9.3.
 2002 Prentice Hall. All rights reserved. Modifed by Haytham Allos, NYU CSD V Week 2 - Object-Oriented Programming Outline 2.1 Introduction 2.2.
 2003 Prentice Hall, Inc. All rights reserved. 1 Chapter 9 - Object-Oriented Programming: Inheritance Outline 9.1 Introduction 9.2 Superclasses and Subclasses.
Lecture 06 Java and OOP Jaeki Song. Outlines Java and OOP –Class and Object – Inheritance – Polymorphism.
Chapter 5 Objects and Classes Inheritance. Solution Assignments 3 & 4 Review in class…..
1 The finalize, clone, and getClass Methods  The finalize method is invoked by the garbage collector on an object when the object becomes garbage.  The.
Chapter 7: Class Inheritance F Superclasses and Subclasses F Keywords: super and this F Overriding methods F The Object Class F Modifiers: protected, final.
April 27, 1998CS102-02Lecture 5-1 Object-Oriented Programming Revisited CS Lecture 5-1 The Wonderful World of Objects.
Inheritance CSI 1101 Nour El Kadri. OOP  We have seen that object-oriented programming (OOP) helps organizing and maintaining large software systems.
 Pearson Education, Inc. All rights reserved Object-Oriented Programming: Polymorphism.
© 2007 Lawrenceville Press Slide 1 Chapter 9 Inheritance  One class is an extension of another.  Allows a class to define a specialized type of an existing.
/** Feb 1996 Cay Horstmann */ import java.util.*; import corejava.*; public class EmployeeTest { public static void main(String[]
Quick Review of OOP Constructs Classes:  Data types for structured data and behavior  fields and methods Objects:  Variables whose data type is a class.
 2003 Prentice Hall, Inc. All rights reserved. 1 Will not cover 4.14, Thinking About Objects: Identifying Class Attributes Chapter 4 - Control Structures.
Jozef Goetz contribution,  2011, 2014 Pearson Education, Inc. All rights reserved.  2002 Prentice Hall. All rights reserved.
1 / 71 COP 3503 FALL 2012 SHAYAN JAVED LECTURE 4 Programming Fundamentals using Java 1.
 2000 Prentice Hall, Inc. All rights reserved. Chapter 19 – Inheritance – Part 1 Outline 19.1Introduction 19.2Inheritance: Base Classes and Derived Classes.
Inheritance ndex.html ndex.htmland “Java.
Liang, Introduction to Java Programming, Seventh Edition, (c) 2009 Pearson Education, Inc. All rights reserved Chapter 10 Inheritance and Polymorphism.
 2002 Prentice Hall. All rights reserved. Page 1 Inheritance: Object-Oriented Programming Outline 9.1 Introduction 9.2 Superclasses and Subclasses 9.3.
 2003 Prentice Hall, Inc. All rights reserved. 1 Chapter 10 - Object-Oriented Programming: Polymorphism.
Java Programming: Guided Learning with Early Objects Chapter 9 Inheritance and Polymorphism.
Web Design & Development Lecture 9
One class is an extension of another.
Chapter 9 – Object-Oriented Programming: Inheritance
Chapter 9 - Object-Oriented Programming
One class is an extension of another.
Object-Oriented Programming: Interface
Object-Oriented Programming: Polymorphism
Java Programming Language
Week 6 Object-Oriented Programming (2): Polymorphism
Package & Java Access Specifiers
Chapter 9 - Object-Oriented Programming: Inheritance
Chapter 19 - Inheritance Outline 19.1 Introduction
Chapter 11 Inheritance and Encapsulation and Polymorphism
Overloading Each method has a signature: its name together with the number and types of its parameters Methods Signatures String toString()
Presentation transcript:

1 OOP : main concepts Polymorphism

2 OOP : main concepts  The main concepts:  In a superclass –public members Accessible anywhere program has a reference to a superclass or subclass type –private members Accessible only in methods of the superclass –protected members Intermediate protection between private and public Only accessible by methods of superclass, of subclass, or classes in the same package

 2000 Prentice Hall, Inc. All rights reserved. Outline 1. Point definition 1.1 Data members 1.2 Constructors 1.3 Methods 1// Fig. 27.3: Point.java 2// Definition of class Point 3 4public class Point { 5 protected int x, y; // coordinates of the Point 6 7 // No-argument constructor 8 public Point() 9 { 10 // implicit call to superclass constructor occurs here 11 setPoint( 0, 0 ); 12 } // Constructor 15 public Point( int a, int b ) 16 { 17 // implicit call to superclass constructor occurs here 18 setPoint( a, b ); 19 } // Set x and y coordinates of Point 22 public void setPoint( int a, int b ) 23 { 24 x = a; 25 y = b; 26 } // get x coordinate 29 public int getX() { return x; } 30

 2000 Prentice Hall, Inc. All rights reserved. Outline 1.2 Methods Circle Definition 1.1 extends Point 1.2 Multiple constructors 38// Fig. 27.3: Circle.java 39// Definition of class Circle 40 41public class Circle extends Point { // inherits from Point 42 protected double radius; // No-argument constructor 45 public Circle() 46 { 47 // implicit call to superclass constructor occurs here 48 setRadius( 0 ); 49 } // Constructor 52 public Circle( double r, int a, int b ) 53 { 54 super( a, b ); // call to superclass constructor 55 setRadius( r ); 56 } // Set radius of Circle 59 public void setRadius( double r ) 60 { radius = ( r >= 0.0 ? r : 0.0 ); } 31 // get y coordinate 32 public int getY() { return y; } // convert the point into a String representation 35 public String toString() 36 { return "[" + x + ", " + y + "]"; } 37}

 2000 Prentice Hall, Inc. All rights reserved. Outline 1.3 Overridden toString method // Get radius of Circle 63 public double getRadius() { return radius; } // Calculate area of Circle 66 public double area() { return Math.PI * radius * radius; } // convert the Circle to a String 69 public String toString() 70 { 71 return "Center = " + "[" + x + ", " + y + "]" + 72 "; Radius = " + radius; 73 } 74}

 2000 Prentice Hall, Inc. All rights reserved. Outline 1. Initialize objects 2. Refer to a subclass object with a superclass reference 2.1 toString 2.2 Downcast 2.3 toString 75// Fig. 27.3: InheritanceTest.java 76// Demonstrating the "is a" relationship 77import java.text.DecimalFormat; 78import javax.swing.JOptionPane; 79 80public class InheritanceTest { 81 public static void main( String args[] ) 82 { 83 Point pointRef, p; 84 Circle circleRef, c; 85 String output; p = new Point( 30, 50 ); 88 c = new Circle( 2.7, 120, 89 ); output = "Point p: " + p.toString() + 91 "\nCircle c: " + c.toString(); // use the "is a" relationship to refer to a Circle 94 // with a Point reference 95 pointRef = c; // assign Circle to pointRef output += "\n\nCircle c (via pointRef): " + 98 pointRef.toString(); // Use downcasting (casting a superclass reference to a 101 // subclass data type) to assign pointRef to circleRef 102 circleRef = (Circle) pointRef; output += "\n\nCircle c (via circleRef): " circleRef.toString();

 2000 Prentice Hall, Inc. All rights reserved. Outline 2.4 Print area 3. if statement DecimalFormat precision2 = new DecimalFormat( "0.00" ); 108 output += "\nArea of c (via circleRef): " precision2.format( circleRef.area() ); // Attempt to refer to Point object 112 // with Circle reference 113 if ( p instanceof Circle ) { 114 circleRef = (Circle) p; // line 40 in Test.java 115 output += "\n\ncast successful"; 116 } 117 else 118 output += "\n\np does not refer to a Circle"; JOptionPane.showMessageDialog( null, output, 121 "Demonstrating the \"is a\" relationship", 122 JOptionPane.INFORMATION_MESSAGE ); System.exit( 0 ); 125 } 126}

 2000 Prentice Hall, Inc. All rights reserved. Outline Program Output

9 Java Interface

10 Using an Interface as a Type  When you define a new interface, you are defining a new reference data type.  You can use interface names anywhere you can use any other data type name.  If you define a reference variable whose type is an interface, any object you assign to it must be an instance of a class that implements the interface.

11 Using an Interface as a Type Class product implements Billable { } product x = new product (); Billable var = x;

12 Payable interface example Payable interface declaration:

13 Payable interface example Invoice class that implements Payable:

14 Payable interface example

15 Payable interface example

16 Payable interface example Method required to carry out contract with interface Payable This item is displayed on pages in the print version