1
COMP 250
Lecture 33
type conversion polymorphism (intro only) Class class
- Nov. 24, 2017
polymorphism (intro only) Class class Nov. 24, 2017 1 Primitive - - PowerPoint PPT Presentation
COMP 250 Lecture 33 type conversion polymorphism (intro only) Class class Nov. 24, 2017 1 Primitive Type Conversion double In COMP 273, you will non-integers learn details of how float number representations long are related to each
1
https://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html In COMP 273, you will learn details of how number representations are related to each other. But you should have some intuitive ideas….
2
non-integers integers
Here, wider usually (but not always) means more bytes.
number
3
4
5
6
extends
7
class Dog String serialNumber Person owner void bark() : class Beagle void hunt () :
8
extends class Doberman void fight () : extends class Poodle void show() : extends
9
10
11
12
13
15
class Dog String serialNumber Person owner void bark() {print “woof”} : class Beagle void hunt () void bark() {print “aowwwuuu”}
extends class Doberman void fight () void bark() {print “Arh! Arh! Arh!”} extends
class Dog String serialNumber Person owner void bark() {print “woof”} : class Beagle void hunt () void bark() {print “aowwwuuu”}
extends class Doberman void fight () void bark() {print “Arh! Arh! Arh!”} extends
varC can reference any object of class C or any object of a class that extends C. varA can reference any object whose class extends abstract class A. varI can reference any object whose class implements interface I.
22
https://docs.oracle.com/javase/specs/jvms/se7/html/jvms-4.html
“class descriptor”
class descriptor
class descriptor
class descriptor
class descriptor
Dog
Beagle
Beagle
Doberman
Doberman
Dog class descriptor Beagle class descriptor LinkedList class descriptor Doberman class descriptor String class descriptor
This figure shows objects in a running Java program.
class Animal : class Dog : class Beagle : extends extends
boolean equals( Object ) int hashCode( ) String toString( ) Object clone( ) Class getClass()
extends (automatic)
Class getSuperClass() Method[ ] getMethods( ) Field[ ] getFields( ) String getName( ) :
extends
This figure shows classes in the Java class hierarchy.
Dog
Beagle
Beagle
Doberman
Doberman
Dog class descriptor Beagle class descriptor LinkedList class descriptor Doberman class descriptor String class descriptor getClass() getClass() getClass()
This figure shows objects in a running Java program.
Dog
Beagle
Beagle
Doberman
Doberman
Dog class descriptor Beagle class descriptor LinkedList class descriptor Doberman class descriptor String class descriptor getClass() getClass() getClass() Class class descriptor getClass() Object class descriptor getClass()
This figure shows objects in a running Java program.
class Animal : class Dog : class Beagle : extends extends
boolean equals( Object ) int hashCode( ) String toString( ) Object clone( ) Class getClass()
extends (automatic)
Class getSuperClass() Method[ ] getMethods( ) Field[ ] getFields( ) String getName( ) :
extends
This figure shows classes in the Java class hierarchy.
Dog
Beagle
Beagle
Doberman
Doberman
Object class descriptor Beagle class descriptor Doberman class descriptor getSuperClass() Dog class descriptor getSuperClass() getSuperClass() Class class descriptor getSuperClass() The getSuperClass() method cannot be invoked by the objects above. Why not?
This figure shows objects in a running Java program.
Dog
Beagle
Beagle
Doberman
Doberman
Beagle class descriptor Doberman class descriptor Dog class descriptor getSuperClass() getClass() getClass() Object class descriptor getSuperClass() Class class descriptor getSuperClass() getClass()
This figure shows objects in a running Java program.