You are on page 1of 5

Inheritance -

Review
Object-oriented programming
Expressions "interface"
Expression

+ asString(): String
+ evaluate(): int
Numeral
- int: value
+ Numeral(int) "interface"
+ Numeral() BinaryExpression
Square
- Expression: expression
+ left(): Expression
+ Square(Expression)
+ right(): Expression

Addition
- Expression: left
- Expression: right
+ Addition(Expression, Expression)

Inheritance 2
Node start

Generic List + data: Object


+ next: Node
+ Node(Object, Node)

MyList
- Node: start end
- Node: end
+ MyList ()
+ append(Object)
MyList l = new MyList(); + appendList(MyList)
l.append(1); + toString(): String
l.append(2);
System.out.println(l); // (1, 2)
MyList l2 = new MyList();
l2.append(3);
l2.append(4);
System.out.println(l2); // (3, 4)
l.append(l2);
System.out.println(l); // (1, 2, (3, 4))
l.appendList(l2);
System.out.println(l); // (1, 2, (3, 4), 3, 4)
l2.append(5);
System.out.println(l); // (1, 2, (3, 4, 5), 3, 4)
Inheritance 4
Generic List
Problem!!!

l.append(l)

Inheritance 5
Better List
Node
+ data: Item
+ next: Node
+ Node(Item, Node) "Interface"
Item
+ clone(): Item
+ toString(): String

MyList
- Node: start
- Node: end
NumeralItem StringItem
+ MyList ()
+ append(Item) - int: value - String: value
+ appendList(MyList) + NumeralItem(int) + StringItem(int)

Inheritance 6

You might also like