11 advance inheritance_concepts
Upcoming SlideShare
Loading in...5
×
 

11 advance inheritance_concepts

on

  • 1,517 views

 

Statistics

Views

Total Views
1,517
Views on SlideShare
1,517
Embed Views
0

Actions

Likes
0
Downloads
60
Comments
0

0 Embeds 0

No embeds

Accessibility

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    11 advance inheritance_concepts 11 advance inheritance_concepts Presentation Transcript

    • Java Programming Fifth Edition Advanced Inheritance Concepts
    • Objectives
      • Create and use abstract classes
      • Use dynamic method binding
      • Create arrays of subclass objects
      • Use the Object class and its methods
      Java Programming, Fifth Edition
    • Objectives (continued)
      • Use inheritance to achieve good software design
      • Create and use interfaces
      • Create and use packages
      Java Programming, Fifth Edition
    • Creating and Using Abstract Classes
      • Abstract class
        • Cannot create any concrete objects
        • Can inherit
        • Usually has one or more empty abstract methods
        • Use keyword abstract
        • Provide superclass from which other objects can inherit
        • Example:
          • public abstract class Animal
      Java Programming, Fifth Edition
    • Creating and Using Abstract Classes (continued)
      • Abstract method does not have:
        • Body
        • Curly braces
        • Method statements
      • To create abstract method
        • Keyword abstract
        • Header including method type, name, and arguments
        • Include semicolon at end of declaration
          • public abstract void speak();
      Java Programming, Fifth Edition
    • Creating and Using Abstract Classes (continued)
      • Subclass of abstract class
        • Inherits abstract method from parent
          • Must provide implementation for inherited method
          • Or be abstract itself
        • Code subclass method to override empty superclass method
      Java Programming, Fifth Edition
    • Using Dynamic Method Binding
      • Every subclass object “is a” superclass member
        • Convert subclass objects to superclass objects
        • Can create reference to superclass object
          • Create variable name to hold memory address
          • Store concrete subclass object
          • Example:
          • Animal ref;
          • ref = new Cow();
      Java Programming, Fifth Edition
    • Using Dynamic Method Binding (continued)
      • Dynamic method binding
        • Also called late binding
        • Application’s ability to select correct subclass method
        • Makes programs flexible
      • When application executes
        • Correct method attached to application based on current one
      Java Programming, Fifth Edition
    • Using Dynamic Method Binding (continued) Java Programming, Fifth Edition
    • Using a Superclass as a Method Parameter Type
      • Use superclass as method argument
        • Pass in subclass
      • Use dynamic method binding
        • public static void talkingAnimal (Animal animal)
        • Dog dog = new Dog();
        • talkingAnimal(dog);
      Java Programming, Fifth Edition
    • Java Programming, Fifth Edition
    • Using a Superclass as a Method Parameter Type (continued) Java Programming, Fifth Edition
    • Creating Arrays of Subclass Objects
      • Create superclass reference
        • Treat subclass objects as superclass objects
          • Create array of different objects
          • Share same ancestry
      • Creates array of three Animal references
        • Animal[] ref = new Animal[3];
        • Reserve memory for three Animal object references
      Java Programming, Fifth Edition
    • Using the Object Class and Its Methods
      • Object Class
        • Every Java class extension of Object class
        • Defined in java.lang package
        • Imported automatically
        • Includes methods to use or override
      Java Programming, Fifth Edition
    • Java Programming, Fifth Edition
    • Using the toString() Method
      • toString() method
        • Converts Object into String
        • Contains information about Object
        • Output
          • Class name
          • @ sign
          • Hash code
      Java Programming, Fifth Edition
    • Using the toString() Method (continued)
      • Write overloaded version of toString() method
        • Display some or all data field values for object
        • Can be very useful in debugging a program
          • Display toString() value
          • Examine contents
      Java Programming, Fifth Edition
    • Using the toString() Method (continued) Java Programming, Fifth Edition
    • Using the equals() Method
      • equals() method
        • Takes single argument
          • Same type as invoking object
        • Returns boolean value
          • Indicates whether objects are equal
        • Considers two objects of same class to be equal
          • Only if they have same hash code
      Java Programming, Fifth Edition
    • Using the equals() Method (continued)
      • Example of equals() method:
        • if(someObject.equals (someOtherObjectOfTheSameType))
        • System.out.println("The objects are equal");
      • To consider objects to be equal based on contents
        • Must write own equals() method
      Java Programming, Fifth Edition
    • Using the equals() Method (continued)
      • Object method hashCode()
        • Returns integer representing hash code
        • Whenever you override equals() method
          • Should override hashCode() method as well
          • Equal objects should have equal hash codes
      Java Programming, Fifth Edition
    • Java Programming, Fifth Edition
    • Using Inheritance To Achieve Good Software Design
      • Create powerful computer programs more easily
        • If components used “as is” or slightly modified
      • Make programming large systems more manageable
      Java Programming, Fifth Edition
    • Using Inheritance To Achieve Good Software Design (continued)
      • Advantages of extendable superclasses
        • Save development time
          • Much code already written
        • Save testing time
          • Superclass code already tested
        • Programmers understand how superclass works
        • Superclass maintains its integrity
          • Bytecode not changed
      Java Programming, Fifth Edition
    • Creating and Using Interfaces
      • Multiple inheritance
        • Inherit from more than one class
        • Prohibited in Java
        • Variables and methods in parent classes might have identical names
          • Creates conflict
          • Which class should super refer when child class has multiple parents?
      Java Programming, Fifth Edition
    • Creating and Using Interfaces (continued)
      • Interface
        • Alternative to multiple inheritance
        • Looks like a class
          • Except all methods and data items implicitly public , abstract , and final
        • Description of what class does
        • Declares method headers
      Java Programming, Fifth Edition
    • Java Programming, Fifth Edition
    • Creating and Using Interfaces (continued) Java Programming, Fifth Edition
    • Creating and Using Interfaces (continued) Java Programming, Fifth Edition
    • Creating and Using Interfaces (continued)
      • Create an interface
        • Example: public interface Worker
      • Implement an interface
        • Keyword implements
          • Requires subclass to implement own version of each method
        • Use interface name in class header
          • Requires class objects to include code
          • public class WorkingDog extends Dog implements Worker
      Java Programming, Fifth Edition
    • Creating and Using Interfaces (continued)
      • Abstract classes versus interfaces
        • Cannot instantiate concrete objects of either
        • Abstract classes
          • Can contain nonabstract methods
          • Provide data or methods that subclasses can inherit
          • Subclasses maintain ability to override inherited methods
          • Can include methods that contain actual behavior object performs
      Java Programming, Fifth Edition
    • Creating and Using Interfaces (continued)
      • Abstract classes versus interfaces (continued)
        • Interface
          • Methods must be abstract
          • Programmer knows what actions to include
          • Every implementing class defines behavior that must occur when method executes
          • Class can implement behavior from more than one parent
      Java Programming, Fifth Edition
    • Creating Interfaces to Store Related Constants
      • Interfaces can contain data fields
        • Must be public , static , and final
      • Interfaces contain constants
        • Provide set of data that many classes can use without having to redeclare values
      Java Programming, Fifth Edition
    • Creating Interfaces to Store Related Constants (continued) Java Programming, Fifth Edition
    • Creating and Using Packages
      • Package
        • Named collection of classes
        • Easily imports related classes into new programs
        • Encourages other programmers to reuse software
        • Helps avoid naming conflicts or collisions
        • Give every package a unique name
      Java Programming, Fifth Edition
    • Creating and Using Packages (continued)
      • Create classes for others to use
        • Protect your work
          • Do not provide users with source code in files with .java extensions
          • Provide users with compiled files with .class extensions
        • Include package statement at beginning of class file
          • Place compiled code into indicated folder
      Java Programming, Fifth Edition
    • Creating and Using Packages (continued)
      • Compile file to place in package
        • Use compiler option with javac command
          • -d option places generated .class file in folder
        • Use type-import-on-demand declaration:
          • import com.course.animals.*
        • Or use separate import statements for each class
          • Cannot import more than one package in one statement
      Java Programming, Fifth Edition
    • Creating and Using Packages (continued)
      • Java ARchive (JAR) file
        • Delivered to users
        • Compress and store data
          • Reduce size of archived class files
        • Based on Zip file format
      Java Programming, Fifth Edition
    • You Do It
      • Creating an abstract class
      • Extending an abstract class
      • Extending an abstract class with a second subclass
      • Instantiating objects from subclasses
      • Using object references
      Java Programming, Fifth Edition
    • You Do It (continued)
      • Overriding the Object class equals() method
      • Eliminating duplicate user entries
      • Creating a package
      Java Programming, Fifth Edition
    • Don’t Do It
      • Don’t write a body for an abstract method
      • Don’t forget to end an abstract method header with a semicolon
      • Don’t forget to override any abstract methods in any subclasses you derive
      • Don’t mistakenly overload an abstract method instead of overriding it
      • Don’t try to instantiate an abstract class object
      • Don’t forget to override all the methods in an interface that you implement
      Java Programming, Fifth Edition
    • Summary
      • Abstract class
        • Class that you create only to extend from, but not to instantiate from
        • Usually contain abstract methods
          • Methods with no method statements
      • Can convert subclass objects to superclass objects
      • Dynamic method binding
        • Create a method that has one or more parameters that might be one of several types
        • Create an array of superclass object references but store subclass instances in it
      Java Programming, Fifth Edition
    • Summary (continued)
      • Interface
        • Similar to a class
        • All methods implicitly public and abstract
        • All of its data implicitly public , static , and final
        • Create class that uses interface
          • Include keyword implements and interface name in class header
      • Place classes in packages
        • Convention uses Internet domain names in reverse order
      Java Programming, Fifth Edition