-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathInheritance-Polymorphism
More file actions
122 lines (86 loc) · 2 KB
/
Inheritance-Polymorphism
File metadata and controls
122 lines (86 loc) · 2 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
### inheritance example
class A:
def __init__(self, i = 0):
self.i = i
class B(A):
def __init__(self, j = 0):
self.j = j
def main():
b = B()
#print(b.i) Throws an error because class B does not instantiate A, this can be done manually via super()__init__()
print(b.j)
main()
## Correct example here:
class A1:
def __init__(self, i = 1):
self.i = i
class B1(A1):
def __init__(self, j = 2):
super().__init__()
self.j = j
def main1():
b = B1()
print(b.i, b.j)
main1()
###
class ParentClass:
def __init__(self):
self.__x = 1
self.y = 10
def print(self):
print(self.__x, self.y)
class ChildClass(ParentClass):
def __init__(self):
super().__init__()
self.__x = 2
self.y = 20
c = ChildClass()
c.print()
object
#####
class A2:
def __init__(self):
self.i = 1
def m(self):
self.i = 10
class B2(A2):
def m(self):
self.i += 1
return self.i
def main2():
b = B2()
print(b.m())
main2()
######
class A3:
def __str__(self):
return "A"
class B3(A3):
def __init__(self):
super().__init__()
class C3(B3):
def __init__(self):
super().__init__()
def main3():
a = A3()
b = B3()
c = C3()
print(a, b, c)
main3()
# left over from previous example
# dont mind this! :)
import math
class Triangle():
def __init__(self, side1 = 1.0, side2 = 1.0, side3 = 1.0):
self.side1 = side1
self.side2 = side2
self.side3 = side3
def getSide1(self): return self.side1
def getSide2(self): return self.side2
def getSide3(self): return self.side3
def getArea(self):
return math.sqrt() # i dont know the formula, it wasent given in the description
def getPerimiter(self):
return self.side1 + self.side2 + self.side3
def __str__(self):
return f"side1 ={self.side1} side2 ={self.side2} side3 ={self.side3}"