RosettaCodeData/Task/Polymorphism/Julia/polymorphism.jl

29 lines
519 B
Julia

mutable struct Point
x::Float64
y::Float64
end
Base.show(io::IO, p::Point) = print(io, "Point($(p.x), $(p.y))")
getx(p::Point) = p.x
gety(p::Point) = p.y
setx(p::Point, x) = (p.x = x)
sety(p::Point, y) = (p.y = y)
mutable struct Circle
x::Float64
y::Float64
r::Float64
end
getx(c::Circle) = c.x
gety(c::Circle) = c.y
getr(c::Circle) = c.r
setx(c::Circle, x) = (c.x = x)
sety(c::Circle, y) = (c.y = y)
setr(c::Circle, r) = (c.r = r)
Base.show(io::IO, c::Circle) = print(io, "Circle($(c.x), $(c.y), $(c.r))")