RosettaCodeData/Task/Inheritance-Multiple/Phix/inheritance-multiple-2.phix

24 lines
687 B
Plaintext

class Camera
public string name = "nikkon"
end class
class MobilePhone
public string name = "nokia" -- (clash no more)
end class
class CameraPhone
-- Camera c = new()
-- MobilePhone m = new()
public Camera c
public MobilePhone m
procedure show() ?{c.name,m.name} end procedure
end class
Camera c = new({"canon"})
MobilePhone m = new()
CameraPhone cp1 = new({c,m}),
cp2 = new({new("Camera"),new("MobilePhone")}),
cp3 = new() -- (internal/shared/NULL c,m)
cp3.c = new() -- (obviously c must be public)
cp3.m = new({"LG20"}) -- "" m "" ""
cp1.show()
cp2.show()
cp3.show() -- crashes without internal/above new()