2012-08-09 2 views
0

거의 .NET 환경에서 소프트웨어를 마이그레이션 할 수 있습니다. 이제 나는 모든 경고를 겪어 그들을 정리하고있다. 그런 다음이 문제에 부딪 쳤습니다. 여기 기본 메서드보다 낮은 액세스로 메서드를 재정의 할 수 없습니다.

내 클래스입니다 ". 는 기본 방법보다 낮은 액세스 메소드를 오버라이드 (override) 할 수 없습니다"

TColorObj = class 
    value:double; 
    thecolor:Color; 
    Constructor; 
    method ReadColor(bdr:BinaryReader); 
    method WriteColor(bdw:BinaryWriter); 
    method Clone:TColorObj; 
    method ToString:String; Override; <<<<----this method is raising error. 
end; 

오류가 나는 키워드, 무시을 제거 할 경우,이 경고 메시지를 제기, "ToString"는 부모 방법을 숨 깁니다. "당신이 볼 수있는 TColorObj 클래스는 모든 기본 클래스에서 상속되지 않습니다.

을 그래서, 내가 할 ?

어떤 도움을 클래스 TColorObj을 공개 또는 힌트는 이해할 수있을 것이다.

+2

이 오류는 ToString 메서드를 public으로 만들어야 함을 나타냅니다. –

답변

4

을 당신이 TObject에 무엇 인 가시성의 ToString 방법을 공개, 확인해야합니다. 당신은 대중 '에서 이동할 수 없습니다 '자손에게서 더 낮은 시야로.

TColorObj = class 
    value:double; 
    thecolor:Color; 
    Constructor; 
    method ReadColor(bdr:BinaryReader); 
    method WriteColor(bdw:BinaryWriter); 
public 
    method Clone:TColorObj; 
    method ToString:String; Override; <<<<----this method is raising error. 
end; 
+0

Ken White, It 's Fixed. 고맙습니다. – ThN

1

Object 클래스에서 상속 한 클래스를 지정하지 않으면 모든 클래스가 다른 클래스를 상속합니다.

public 인 ToString 메서드를 오버라이드하고 있으므로 재정의하는 메서드를 public으로 만들어야합니다.

관련 문제