Introduction to OOP Chapter 12: Implications of substitution: next previous audio real text

Paradoxes of Equality, Part 1

But child classes cannot change the type signature of overridden methods. This means the argument must often be more general than one would like:
class Object {
	public boolean equals (Object right) { 
		... 
	}
}

class PlayingCard extends Object {
	public boolean equals (Object right) {
		... // right must be object even if we are only
		... // interested in comparing cards to cards
	}
}
Intro OOP, Chapter 12, Slide 18