-
Notifications
You must be signed in to change notification settings - Fork 28
Expand file tree
/
Copy pathanimals.py
More file actions
72 lines (53 loc) · 1.63 KB
/
Copy pathanimals.py
File metadata and controls
72 lines (53 loc) · 1.63 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
'''Example Python class - Animal hierarchy'''
class Animal:
'''Animal class with speak, move, and eat methods.'''
def __init__(self, name="NoName"):
"Constructor for Animal class"
print("ANIMAL: Constructor")
self.name=name
def speak(self):
print("ANIMAL " + self.name + ": speaks")
def move(self):
print("ANIMAL " + self.name + ": I'm moving")
def eat(self):
print("ANIMAL " + self.name + ": I'm hungry!")
class Dog(Animal):
'''Dog class extends Animal with fetch method.'''
def __init__(self, name="NoName"):
"Constructor for Dog class - calls Animal constructor first"
super().__init__(name)
print("DOG: Constructor")
def speak(self):
print("DOG " + self.name + ": Woof! Woof!")
def move(self):
print("DOG " + self.name + ": I'm running!")
def fetch(self):
print("DOG " + self.name + ": Ball! Ball!")
class Cat(Animal):
'''Cat class extends Animal.'''
def __init__(self, name="NoName"):
"Constructor for Cat class - calls Animal constructor first"
super().__init__(name)
print("CAT: Constructor")
def speak(self):
print("CAT " + self.name + ": Meow!")
def move(self):
print("CAT " + self.name + ": Later")
if __name__ == "__main__":
print("MAIN: Python class example")
a=Animal('George')
d=Dog('Spot')
c=Cat('Eek')
print("MAIN: Animal object:")
a.speak()
a.move()
a.eat()
print("MAIN: Dog object:")
d.speak()
d.move()
d.eat()
d.fetch()
print("MAIN: Cat object:")
c.speak()
c.move()
d.eat()