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
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();
|
|
}
|
|
|
|
} |