2017-07-14 44 views
0

我有一个小问题,理解这里有什么问题。从父类继承的子类中的函数使用那些变量?

我有代码类同这一

Public Class Parent 
    Public name As String = "dad" 


    Public Function sayname() As String 
     Return name 
    End Function 
End Class 

Public Class child 
    Inherits Parent 
    Shadows name As String = "son" 
End Class 

当我这样做:

dim littleson as new child 
littleson.sayname() 

它将返回“爸爸”,我想这回“儿子”。我做什么有什么问题?

+0

每个新的'parent'实例都明确地设置了名称:'johnstruc.name = name'因为Parent.Name是父亲,所以他们都是父亲 – Plutonix

+0

不要使用结构。而你创造的那个没有意义。孩子不应该从父母继承。也许一个名为Person或Human的基类会更合乎逻辑地继承它。 – LarsTech

+0

但我从未宣布过“父母”?从我阅读的内容或至少从我的理解中得出的结论是,“阴影”应该改变“孩子”实例中的“名称”属性 - 并且由于我没有声明父母,所以我仍然失去。 – SimonLearner

回答

1

不要影响它,只需在构造函数中设置值即可。

Public Class Child 
    Inherits Parent 

    Public Sub New() 
     MyBase.New() 
     name = "son" 
    End Sub 

End Class 

阴影创建一个新的变量完全不同于父级中的变量。

+0

忘记我写的东西,收到的消息,它可能不会改变一件事。 :-D 非常感谢,这是如此明显,我仍然花了2个小时没有看到它。 – SimonLearner