local function Animal(initName, initSize)
local public = {
name = initName or 'N/A'
}
local private = {
size = initSize or '0'
}
function public.voice()
print( 'Animal ' .. public.name .. ' ' .. private.size)
end
function public.getSize()
return private.size
end
function public.getClassName()
return 'Animal'
end
return public
end
local function Dog(initName,initSize)
local obj = Animal(initName,initSize)
function obj.voice()
print( 'Dog ' .. obj.name .. ' ' .. obj.getSize())
end
function obj.getClassName()
return 'Dog'
end
return obj
end
local a = Animal(nil,100)
a.voice()
local b = Dog('Rex',200)
b.voice()
local c = Dog('Max',300)
c.voice()
d = { a,b,c }
for i=1,#d do
print( ( d[i].getClassName()=='Dog' ) and 'dog' or '?' )
end
Lua Справочник v0.05 © 2007-2024 Igor Salnikov aka SunDoctor