-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathAbstraction.java
More file actions
128 lines (96 loc) · 2.43 KB
/
Copy pathAbstraction.java
File metadata and controls
128 lines (96 loc) · 2.43 KB
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
package oop;
public class Abstraction {
public static void main(String[] args) {
// ----- Abstract class -----
Horse h = new Horse();
h.eat();
h.walk();
System.out.println(h.color);
Chicken c = new Chicken();
c.eat();
c.walk();
// Constructor chaining: Calling one constructor from another using super() or this()
// Java automatically adds super() if not written
Mustang myHorse = new Mustang(); // Constructor chaining: Animal -> Horse -> Mustang
// ----- Interface -----
Queen q = new Queen();
q.moves();
// --- Multiple Interface ---
Bear b = new Bear();
b.eat();
b.hunt();
b.roar();
}
}
abstract class Animal {
String color;
Animal() {
color = "Brown";
System.out.println("Animal constructor called...");
}
void eat() {
System.out.println("Eats");
}
abstract void walk();
}
class Horse extends Animal {
Horse() {
System.out.println("Horse constructor called...");
}
void changeColor() {
color = "Dark brown";
}
void walk() {
System.out.println("Walks on 4 legs");
}
}
class Mustang extends Horse {
Mustang() {
System.out.println("Mustang constructor called...");
}
}
class Chicken extends Animal {
void changeColor() {
color = "White";
}
void walk() {
System.out.println("Walks on 2 legs");
}
}
// ----- Interface -----
interface ChessPlayer {
void moves();
}
class Queen implements ChessPlayer {
public void moves() {
System.out.println("Up, Down, Left, Right, Diagonal (In all 4 directions)");
}
}
class King implements ChessPlayer {
public void moves() {
System.out.println("Up, Down, Left, Right, Diagonal - (By 1 step)");
}
}
class Rook implements ChessPlayer {
public void moves() {
System.out.println("Up, Down, Left, Right");
}
}
// --- Multiple Interface ---
interface Herbivore {
void eat();
}
interface Carnivore {
void hunt();
}
class Bear implements Herbivore, Carnivore {
public void eat() {
System.out.println("Bear eats berries, nuts, roots, and grass");
}
public void hunt() {
System.out.println("Bear hunts fish, small mammals, and insects");
}
public void roar() {
System.out.println("BEAR ROARS loudly!!!");
}
}