46 lines
1.2 KiB
Plaintext
46 lines
1.2 KiB
Plaintext
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
|