@@ -34,6 +34,11 @@ class Expert{
3434 func addNewLike( ) {
3535 likes += 1
3636 }
37+
38+ func getName( ) -> String {
39+ return " Expert name \( name) "
40+ }
41+
3742}
3843// create objects from Expert class
3944var expert1 = Expert ( name: " Omar " , bio: " IOS Developer " , likes: 0 )
@@ -49,3 +54,50 @@ expert1.addNewLike()
4954expert1. addNewLike ( )
5055expert1. likes
5156expert2. likes
57+
58+
59+ class Developer : Expert {
60+ var arrProgLanguaes : [ String ]
61+ init ( name: String , bio: String , likes: Int , arrProgLanguaes : [ String ] ) {
62+ self . arrProgLanguaes = arrProgLanguaes
63+ super. init ( name: name, bio: bio, likes: likes)
64+ }
65+
66+ override func getName( ) -> String {
67+ return " Developer name = \( name) "
68+ }
69+
70+
71+ }
72+
73+ class Lawyer : Expert {
74+ var numberOfCases : Int
75+ init ( name: String , bio: String , likes: Int , numberOfCases : Int ) {
76+ self . numberOfCases = numberOfCases
77+ super. init ( name: name, bio: bio, likes: likes)
78+ }
79+
80+ override func getName( ) -> String {
81+ return " Lawyer name = \( name) "
82+ }
83+
84+ }
85+
86+ var developer1 = Developer ( name: " Ali " , bio: " IOS Developer " , likes: 10 , arrProgLanguaes: [ " Swift " , " Objective-C " ] )
87+ developer1. name
88+ developer1. addNewLike ( )
89+ developer1. likes
90+ var lawyer1 = Lawyer ( name: " Salem " , bio: " " , likes: 8 , numberOfCases: 12 )
91+ lawyer1. likes
92+ //print(developer1.getName())
93+ //print(lawyer1.getName())
94+
95+ var arrExpers : [ Expert ] = [ developer1, lawyer1]
96+ for expert in arrExpers{
97+ print ( expert. getName ( ) )
98+ if let developer = expert as? Developer {
99+ print ( developer. arrProgLanguaes)
100+ } else if let lawyer = expert as? Lawyer {
101+ print ( lawyer. numberOfCases)
102+ }
103+ }
0 commit comments