true is tagged with the boolean type.
sqrt(true) ???
int i; double sqrt(double x) { ... }
i = true;sqrt(true)
ints, a stack for booleans, and so on.


void m() {
Object o = 42;
}
void m() {
Object o = new Integer(42);
}
primitive-typeValue() in java.lang.Number.
hashTable maps Strings to ints.
void m(String key)
if (hashTable.containsKey(key))
int i =
((Integer) hashTable(key)).intValue()
void m() {
Object o = 42;
}
void m(String key) {
if (hashTable.containsKey(key))
int i = hashTable(key);
}

class Dictionary
void add(Key k, Value v) { ... }
Value find(Key k) { ... }
void delete(Key k) { ... }
class LinkedListDictionary
void add(Key k, Value v) { ... }
Value find(Key k) { ... }
void delete(Key k) { ... }
class HashTableListDictionary
void add(Key k, Value v) { ... }
Value find(Key k) { ... }
void delete(Key k) { ... }
A inherits from B A IS-A B
|
|
|
extends class modifier signals inheritance:
class Child extends Parent { ... }
class Dictionary {
void add(Key k, Value v) { ... }
Value find(Key k) { ... }
void delete(Key k) { ... }
}
class LinkedListDictionary
extends Dictionary {
}
class Blob { ... }
class Spot extends Blob { ... }
class Drop extends Blob { ... }
|
|
|
class Blob { ... }
class Spot extends Blob { ... }

class Blob extends Object { ... }
class Spot { ... }
class Drop extends Spot { ... }

class Stack
void push(Object o) { ... }
Object pop() { ... }

stack.push("blah"); use(stack);
stack.push(new Blob()); use(stack);
stack.push(stack); use(stack);
use()
look like?
void use(Stack s) ??? e = (???) s.pop(); // and so on.