Inheritance 如何调用超级类型方法?
我必须遵循典型的类型结构Inheritance 如何调用超级类型方法?,inheritance,types,julia,Inheritance,Types,Julia,我必须遵循典型的类型结构 abstract type bla end abstract type blup <: bla end mutable struct Ablup <: blup a::Real end mutable struct Bblup <: blup b::Real end init(obj::bla) = println("bla") init(obj::blup) = println("blup") init(obj::Ablup)
abstract type bla end
abstract type blup <: bla end
mutable struct Ablup <: blup
a::Real
end
mutable struct Bblup <: blup
b::Real
end
init(obj::bla) = println("bla")
init(obj::blup) = println("blup")
init(obj::Ablup) = println("Ablup")
init(obj::Bblup) = println("Bblup")
testA = Ablup(1)
testB = Bblup(1)
init(testA)
init(testB)
抽象类型bla-end
抽象类型blup使用调用
函数:
julia> invoke(init, Tuple{bla}, testA)
bla
julia> invoke(init, Tuple{bla}, testB)
bla
julia> invoke(init, Tuple{blup}, testA)
blup
julia> invoke(init, Tuple{blup}, testB)
blup