MATLAB Answers

Is the Abstract keyword needed to make a method abstract?

조회 수: 2(최근 30일)
per isakson
per isakson 2021년 9월 17일
댓글: per isakson 2021년 9월 18일
Is this correct Matlab syntax
classdef MyClass
methods
outarg = my_method( this, inarg );
end
end
R2018b accepts it. Assuming this class definition is correct
  • is MyClass abstract?
  • is the method, my_method, abstract?
meta.class reports that .Abstract==false for both.
  댓글 수: 1
per isakson
per isakson 2021년 9월 18일
Addendum: "Run in R2021a" can't execute these lines in the question, since the class definition causes an error
meta_class = meta.class.fromName( 'MyClass' );
meta_class.Abstract
ans = logical
0
meta_class.MethodList(1).Name
ans = 'my_method'
meta_class.MethodList(1).Abstract
ans = logical
0

댓글을 달려면 로그인하십시오.

채택된 답변

Steven Lord
Steven Lord 2021년 9월 18일
That is valid syntax, but not for making my_method an Abstract method. What you've written tells MATLAB that my_method is implemented in a separate file, not in the classdef file for MyClass.
See this documentation page for more information on how to declare a method as Abstract.
classdef MyClass
methods (Abstract)
outarg = my_method( this, inarg );
end
end
  댓글 수: 1
per isakson
per isakson 2021년 9월 18일
@Steven Lord, thank you for the answer. I had forgotten (I never use separate files).
However, that means that MyClass.m needs to be in a class folder named, @MyClass.

댓글을 달려면 로그인하십시오.

추가 답변(0개)

제품


릴리스

R2018b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by