# Java OOP Examples (1997)
Code from the article [Java and Object-Oriented Programming: Getting It Right From the Start](https://rishisharma.in/articles/java-oop-late-90s).
Requires Java 1.1.
```sh
mkdir -p build
find src -name '*.java' | xargs javac -d build
java -cp build com.motorola.nms.oop.DeviceFactoryDemo
```
## Contents
- `src/com/motorola/nms/oop/Device.java` — abstract base class with template method
- `src/com/motorola/nms/oop/Router.java` — concrete subclass: router device
- `src/com/motorola/nms/oop/Switch.java` — concrete subclass: network switch
- `src/com/motorola/nms/oop/DeviceFactory.java` — factory method pattern for device creation
- `src/com/motorola/nms/oop/Monitorable.java` — interface for anything that can return health status
- `src/com/motorola/nms/oop/DeviceFactoryDemo.java` — main: creates devices via factory, calls polymorphic methods