2014-01-28 3 views
1

Matlab을 처음 사용하고 수퍼 클래스 메서드를 호출 할 때 몇 가지 문제가 있습니다.Matlab에서 수퍼 클래스 메서드를 호출 할 수 없습니다.

슈퍼 클래스의 TEST1 :

classdef test1 < handle 
    methods 
     function obj = test1() 
     end 
     function test2(obj) 
      disp(1); 
     end 
    end 

end 

서브 클래스 테스트 :

나는이 코드를 가지고

classdef test < test1 & handle 
    properties 
     foo = 1; 
    end 
    methods 
     function obj = test() 
      obj = [email protected](); 
     end 
     function a = bar(obj) 
      superclasses(obj) 
      [email protected](obj) 
     end 
    end 
end 

은 상속이 제대로 작동을; 슈퍼 클래스 함수는 test의 수퍼 클래스로 test1을 표시합니다. 내가 [email protected](obj)를 호출 할 때, 그것은 오류를 반환 :

"@" Within a method, a superclass method of the same name is called by saying [email protected] The left operand of "@" must be the method name.

test이 방법은 분명히 슈퍼 test1 내에 존재, 그래서 정확히 무슨 일이 잘못 모르겠어요.

답변

1

수퍼 클래스와 하위 클래스의 메서드 이름이 같고 호출이 같은 이름의 자식 클래스 메서드 내에있는 경우에만 @ 구문을 사용할 수 있습니다. 그렇지 않으면 혼란이 없으므로 직접 메소드를 호출 할 수 있습니다. 따라서 [email protected](obj) 대신 test2 (obj)를 사용하십시오.

또한 하위 클래스에서 핸들을 수퍼 클래스로 다시 지정할 필요가 없습니다.

+0

네, 이제 작동합니다. 정말 고맙습니다! – user3245507

관련 문제