CISC 181
Abstract classes & interfaces
Prof. Christopher Rasmussen
April 6, 2015
News
Derived Classes
public class Animal { … }
public class Fish extends Animal { … }
instanceof
if (o instanceof A) { … }
null
null
Abstract class
Example: JComponent
abstract
Abstract class
Abstract class
abstract void methodName( … );
Abstract class
abstract void methodName( … );
Abstract class
abstract void methodName( … );
Example: Shape
abstract class Shape {
…
abstract double computeArea();
}
Example: Shape
abstract class Shape {
…
abstract double computeArea();
}
class Circle extends Shape {
double computeArea()
{ return Math.PI * radius * radius; }
}
Example: Shape
abstract class Shape {
…
abstract double computeArea();
}
class Circle extends Shape {
double computeArea()
{ return Math.PI * radius * radius; }
}
class Rectangle extends Shape {
double computeArea()
{ return width * height; }
}
Abstract classes & polymorphism
Abstract classes & polymorphism
interfaces
interfaces
interfaces
class A implements I1, I2 { … }
More about interfaces
More about interfaces
More about interfaces
More about interfaces
Example interface: Comparable<T>
Example interface: Comparable<T>
Limitations of Comparable<T>
Limitations of Comparable<T>
Example interface: Comparator<T>
int compare(T o1, T o2)
Example interface: Comparator<T>
int compare(T o1, T o2)
Example interface: Comparator<T>
int compare(T o1, T o2)
Example interface: Comparator<T>
int compare(T o1, T o2)
Comparator<T> example with sort()
class ByAlpha extends Comparator<String> {
public int compare(String o1, String o2) {
return o1.compareTo(o2);
}
}
class ByLength extends Comparator<String> {
public int compare(String o1, String o2) {
return (o1.length() - o2.length());
}
}