-
Notifications
You must be signed in to change notification settings - Fork 347
Expand file tree
/
Copy pathAbstraction.java
More file actions
91 lines (65 loc) · 1.65 KB
/
Abstraction.java
File metadata and controls
91 lines (65 loc) · 1.65 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
package basic.c08_oop;
/*
Clase 65 - Abstracción
Vídeo: https://youtu.be/JOAqpdM36wI?t=25550
*/
public class Abstraction {
public static void main(String[] args) {
// Abstracción
// - Clase abstracta
var dog = new Dog();
dog.sleep();
dog.sound();
var cat = new Cat();
cat.sleep();
cat.sound();
// - Interface
}
// - Clase abstracta
public static abstract class Animal {
public abstract void sound();
public void sleep() {
System.out.println("El animal está durmiendo");
}
}
public static class Dog extends Animal {
@Override
public void sound() {
System.out.println("Guau");
}
@Override
public void sleep() {
System.out.println("El perro está durmiendo");
}
}
public static class Cat extends Animal {
@Override
public void sound() {
System.out.println("Miau");
}
}
// - Interface
public interface Flying {
void fly();
}
public static class Bird extends Animal implements Flying {
@Override
public void sound() {
System.out.println("Pio pio");
}
@Override
public void fly() {
System.out.println("El pájaro vuela");
}
}
public static class Bat extends Animal implements Flying {
@Override
public void sound() {
System.out.println("Soy batman!");
}
@Override
public void fly() {
System.out.println("El murciélago vuela");
}
}
}