inherited안써주어도 상속받은객체의 메소드나 변수를 사용하는덴 아무런 제약이 없습니다...
필요에 의해 안할수도 있습니다.
계층구조가 간단한 경우에는 별문제 없지만 복잡할 수록 상위계층에서 하는 일이 많아집니다. inherited를 써서 윗계층에서 해야할 일을 안해주면 동작을 안할 수도 있거든요... 이런 경우에 윗계층이 해야할 일은 윗계층에서 하라고 inherited를 써서 넘겨버립니다.
또, 흠~ 예를 들어 A, B에서 어떤걸 그린다고 가정하면, A.Paint는 사각형을 그리고 B.Paint는 삼각형을 그리는데 상속받은 A의 Paint을 호출(inherited)해서 사각형을 그린 뒤에 삼각형을 그릴 필요는 없잖아요. 그냥 삼각형만 그리면 되는데... 이럴땐 안 씁니다.
그러니까 쓸때와 안쓸때를 잘 아실려면 계층구조에 대해 각 계층에서 하는 일을 명확하게 알고 있어야 겠죠...
inherited는 상속받은 부모의 메소드를 쓴다는 예기네요...
type
A = class(...)
procedure Create;
end;
B = class(A)
procedure Create;
end;
procedure A.Create;
begin
......;
end;
procedure B.Create;
begin
inherited; // A.Create를 호출한다는 얘기입니다.
......
end;
^^ 항상 즐코하세요...