You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

46 lines
1.0 KiB
Java

class Machine {
public void start() {
System.out.println("Machine started.");
}
}
class Camera extends Machine {
public void start() {
System.out.println("Camera started.");
}
public void snap() {
System.out.println("Photo taken.");
}
}
public class App {
public static void main(String[] args) {
Machine machine1 = new Machine();
Camera camera1 = new Camera();
machine1.start();
camera1.start();
camera1.snap();
// Upcasting
Machine machine2 = camera1;
machine2.start();
// error: machine2.snap();
// Downcasting
Machine machine3 = new Camera();
Camera camera2 = (Camera)machine3;
camera2.start();
camera2.snap();
// Doesn't work --- runtime error.
Machine machine4 = new Machine();
// Camera camera3 = (Camera)machine4;
// camera3.start();
// camera3.snap();
}
}