cop3502 introduction to cis i
Download
Skip this Video
Download Presentation
Lecture 16

Loading in 2 Seconds...

play fullscreen
1 / 46

Lecture 16 - PowerPoint PPT Presentation


  • 153 Views
  • Uploaded on

COP3502: Introduction to CIS I. Lecture 16. Today Interfaces and Polymorphism Wednesday, Friday, Monday GUIs, Animation, Events. In-class review Wed Feb 26 In-class Exam Fri Feb 28 Will cover everything up through next Monday’s class. Super Session Thursday Feb 27 8pm-10pm.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' Lecture 16' - gil


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
slide2

Today

Interfaces and Polymorphism

Wednesday, Friday, Monday

GUIs, Animation, Events

slide3

In-class review

Wed Feb 26

In-class Exam

Fri Feb 28

Will cover everything up through next Monday’s class

slide4

Super Session

Thursday Feb 278pm-10pm

slide5

Tuesday Feb 18

Lab 3 (Objects)

Tuesday Feb 25

Lab 4 (GUIs)

slide7

Reading

Thinking in Java (Eckel)

Ch. 1

Intro to Java Programming (Eck)

Ch. 5

slide12

uses of inheritance

  • Organizing information
  • Grouping similar classes
  • Modeling similarity among classes
  • Creating a taxonomy among objects
slide13

What does the subclass inherit?

public methods

protected methods

protected instance variables

slide14

What does the subclass inherit?

public methods

protected methods

protected instance variables

NOT PRIVATE ANYTHING

slide17

subclass specializes superclass

adding new methods

overriding existing methods

slide18

subclass specializes superclass

adding new methods

overriding existing methods

Implementing abstract methods

slide19

subclass specializes superclass

adding new methods

overriding existing methods

Implementing abstract methods

Superclass “factors out” common capabilities among subclasses

slide20

abstract methods

empty methods in the superclass

need to be implemented by inheriting subclass

uses abstract keyword

slide21

abstract methods

empty methods in the superclass

need to be implemented by inheriting subclass

uses abstract keyword

abstract void draw();

slide22

any class with an abstract method should itself be declared abstract

abstract class Shape {

abstract void draw();

}

slide23

overriding methods

public class Square extends Shape {

@Override

public void draw() {

}

}

slide24

method resolution

compiler walks up the class inheritance hierarchy tree until it finds the appropriate method

slide25

super keyword

public class Square extends Shape {

public Square(double x, double y, Color c, double len) {

super(x, y, c);

length = len;

}

}

slide26

super keyword

public class Shape {

public void rotate(double radians) {

//perform rotation

}

}

Pretend this method exists in

our Shape implementation!

slide27

super keyword

public class Square extends Shape {

@Override

public void rotate(double degrees) {

double radians = Math.PI*degrees/180;

super.rotate(radians);

}

}

Same as Shape.rotate()

slide28

super keyword

public class Square extends Shape {

@Override

public void rotate(double degrees) {

double radians = Math.PI*degrees/180;

super.rotate(radians);

}

}

partial overriding

Same as Shape.rotate()

slide30

classes can only inherit from one superclass

But they can inherit from multiple interfaces

Superclass

Interface

Interface

Subclass

slide31

interface

a set of instance methods without any implementation

ie. a collection of abstract methods

slide32

interface

“factors out” commonality among very different classes that share behavior

slide33

both have the ability to be “colored”

might implement a Colorable interface

slide35

interfaces

No constructor

usually no instance variables

just a list of responsibilities

even more abstract than abstract classes

slide36

uses of interfaces

give specific properties to an object

Usually an adjective that ends in –ive or –able

Colorable

Rotatable

Bounceable

slide37

uses of interfaces

give role to an object

Usually ends in –er

Container

Mover

Teacher

slide38

public interface Colorable {

// set the current color

public void setColor(Color color);

// get the current color

public Color getColor();

}

slide39

public interface Decorable {

// models something which can be decorated

public void decorate(Decoration dcr);

}

slide40

interfaces can extend any number of other interfaces

subclass inherits all superclass methods AND all interfaces

slide41

public interface Artistic extends Colorable, Decorable{

// probably uses decorate and change color methods

public void putOnDisplay();

}

slide44

methods for factoring out common code

loops and functions

classes and instances

slide45

methods for factoring out common code

loops and functions

classes and instances

superclasses and subclasses

slide46

methods for factoring out common code

loops and functions

classes and instances

superclasses and subclasses

interfaces and implementations

ad