Module CheckIt { Class Camera { Private: cameratype$ Class: module Camera (.cameratype$){ } } \\ INHERITANCE AT CODE LEVEL Class MobilePhone { Private: model$ Class: module MobilePhone (.model$) { } } Class CameraPhone as Camera as MobilePhone { Module CameraPhone ( .model$, .cameratype$) { } } CP1 =CameraPhone("X-15", "OBSCURE") Print CP1 is type CameraPhone = true Print CP1 is type Camera = true Print CP1 is type MobilePhone = true \\ INHERITANCE AT OBJECT LEVEL CP2 = MobilePhone("X-9") with Camera("WIDE") \\ CP3 has no type Group CP3 { Module PrintAll { If this is type Camera and this is type MobilePhone then Print .model$, .cameratype$ Else Print "Nothing to print" End if } } CP3.PrintAll ' Nothing to print \\ using pointers and prepate inheritance at object level CP->(CP1 with CP3) CP=>PrintAll CP->(CP2 with CP3) CP=>PrintAll } CheckIt