How to pass field values to subclass from superclass?
조회 수: 18 (최근 30일)
이전 댓글 표시
Hi guys,
I would like to pass my propert values of super class to subclass? I could transfer the properties but not the values of it. I am sending you the code that i made. Please tell me how could i correct it.
classdef clWinding
properties
Npcs
Npcp
end
properties (Dependent)
kb
end
methods
function objW = clWinding (Npcs, Npcp)
objW.Npcs = Npcs;
objW.Npcp = Npcp;
end
function kb = get.kb (objW)
kb = objW.Npcs + objW.Npcp;
end
end
end
This is the superclass
classdef clLitz <clWinding
properties
Litz
end
methods
function objLitz = clLitz (Npcs, Npcp, Litz)
objLitz @ clWindingPrimary (Npcs, Npcp);
objLitz.Litz = Litz;
end
end
end
When i did this i could pass the fields but not values of it. Can anyone tell me what mistake i have done and help me to resolve it.
Thnak you
댓글 수: 4
Steven Lord
2020년 7월 27일
Because your objLitz isa clWinding object (through inheritance) you can ask for the values of the (for example) Npcs property it has because it is a clWinding object.
obj = clLitz(1, 2, 3) % using dummy values
N = obj.Npcs
채택된 답변
per isakson
2020년 7월 30일
There are syntax errors in your code. Try to keep the little box in the upper right corner, , green at all time.
I've fixed your code, based on a bit of guessing, and run
>> objLitz = clLitz( -17, 17, 991 );
>> objLitz
objLitz =
clLitz with properties:
Litz: 991
Npcs: -17
Npcp: 17
kb: 0
where
classdef clWinding
properties
Npcs
Npcp
end
properties (Dependent)
kb
end
methods
function objW = clWinding( Npcs, Npcp )
objW.Npcs = Npcs;
objW.Npcp = Npcp;
end
function kb = get.kb( objW )
kb = objW.Npcs + objW.Npcp;
end
end
end
and
classdef clLitz < clWinding
properties
Litz
end
methods
function objLitz = clLitz (Npcs, Npcp, Litz)
% How to Call Superclass Constructor
objLitz = objLitz@clWinding( Npcs, Npcp);
objLitz.Litz = Litz;
end
end
end
댓글 수: 0
추가 답변 (1개)
Matt J
2020년 7월 28일
편집: Matt J
2020년 7월 28일
Your terminolgy is confusing, so I'm not completely sure I understand your question. "Classes" do not have property values. Only "objects" of classes have property values. If you have an object obj_super and you want to copy all of its non-Dependent property values to a different object obj_sub, then you can use the attached file,
obj_sub=copyprops(obj_super,obj_sub)
댓글 수: 0
참고 항목
카테고리
Help Center 및 File Exchange에서 Construct and Work with Object Arrays에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!