-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathupcastingAndDowncasting.java
More file actions
46 lines (36 loc) · 999 Bytes
/
Copy pathupcastingAndDowncasting.java
File metadata and controls
46 lines (36 loc) · 999 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
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 upcastingAndDowncasting {
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();
//Doesnt work -- runtime Error
Machine machine4 = new Machine();
// Camera camera3 = (Camera)machine4;
// camera3.start();
// camera3.snap();
}
}