Lecture 13

Fall 2018

Narges Norouzi

Recap

  • Static
    • Static field and static method
  • Final
    • Final class, method, and variable

 

Abstract behavior

football game

Abstract behaviors

abstract behaviors (1)

  • Does all football objects kick the ball?
    • No. So “to kick” is not a behavior of football objects.
  • All football objects needs to be drawn
    • “to draw” is a behavior of all objects.
    • But what is the shape of a football object?
    • It depends to the specific type of instance.

 

abstract behaviors (2)

  • “draw” is an abstract behavior of a football object
    • But we cannot specify how to draw football objects
    • It depends on the specific class of football objects
  • “draw” is a concrete behavior of Ball
  • “kick” is not a behavior of a football object but it is a concrete behavior of a Player object

 

Remember shapes?

Abstract shape

  • Shape is an abstract class
    • Some methods aren't implemented in Shape
    • Those methods should be implemented in subclasses
    • Example: getArea() - getPerimeter()
  • These methods are abstract methods

 

abstract methods (1)

  • Shape class
    • getArea() and getPerimeter()
  • FootballObject
    • draw()
  • getCoordinates() is not an abstract method
  • How should we implement an abstract method?

 

abstract methods(2)

  • Abstract method: no implementation
  • A class containing abstract methods:
    • an abstract class
  • You cannot instantiate any object from an abstract classes. Why?
  • If a subclass doesn't implement all abstract methods of its superclass, it will be abstract too

example

Interface

Interface

  • Sometimes we have an abstract class, with no concrete method

  • Interface:

    • Pure abstract class

    • No concrete method

Interface

Methods in interfaces

  • All the methods are implicitly abstract
    • No need to specify them as abstract
  • All the methods are implicitly public
    • No need to write public access specifier

 

Interface implementatioN

  • A class may inherit from an abstract class

 

  • A class may implement interfaces

  • Is-a relation exists if a class implements an interface

  • What if it does not implement all the methods?

    • The class becomes an abstract class

Zybooks chapters we covered

  • Chapter 11: abstract class and interfaces

CMPS12A - Lecture 13

By Narges Norouzi

CMPS12A - Lecture 13

  • 1,239