2011-05-13 2 views
1

클래스 내에서 허용되지 않더라도 클래스가 상위 클래스의 읽기 전용 속성을 "오버로드"할 수 있음을 발견했습니다. 나는 이것이 왜 허용되는지 혹은 그것이 무엇을 성취하는지 이해하지 못한다. VB.net에서 매개 변수없이 두 개의 읽기 전용 속성을 서로 오버로드 할 수 있습니까?

Class myClass 
    ReadOnly Property SomeProp As Integer 
     Get 
      Return 50 
     End Get 
    End Property 
End Class 

Class mySubClass 
    Inherits myClass  
    Overloads ReadOnly Property SomeProp As Integer 
     Get 
      Return 12 
     End Get 
    End Property 
End Class 

mySubClass.SomeProp의 서명 myClass.Prop 동일 어때 전자 과부하 후자 수 있는가?

실제로 이것은 Shadows처럼 작동하는 것 같습니다. 사실입니까? 본질적으로

답변

0

예, 과부하와 당신이 mySubClass의 인스턴스을 감안할 때 myClass가 :: SomeProp 및 mySubClass :: SomeProp

있을 것이다, 가장 일치로 mySubClass :: SomeProp에 해결할 수 SomeProp 호출합니다. 그것은 과부하가 아닌 그림자, 그것은 과부하 장식이 부족하기 때문에 컴파일되지 않습니다

Readonly Property SomeProp(x as Integer) as integer) 
    Get 
    Return 13 
    End Get 
End Property 

같은 것을이다 그러나 때문이다.