Vb.net 了解VB中OOP和继承的帮助
我正在制作一个WinForms应用程序,其中有一个带有文本框和组合框的图形界面,用户可以在其中输入有关车辆的信息,如品牌或颜色。它有两个单选按钮来选择车辆是汽车还是摩托车。它只有两个按钮,一个叫“创建车辆”,另一个叫“显示信息”,在文本框中显示用户输入的所有数据 然后我有Vb.net 了解VB中OOP和继承的帮助,vb.net,oop,inheritance,Vb.net,Oop,Inheritance,我正在制作一个WinForms应用程序,其中有一个带有文本框和组合框的图形界面,用户可以在其中输入有关车辆的信息,如品牌或颜色。它有两个单选按钮来选择车辆是汽车还是摩托车。它只有两个按钮,一个叫“创建车辆”,另一个叫“显示信息”,在文本框中显示用户输入的所有数据 然后我有Form1、Vehicle、Car、和Motorcicle(两者都继承自Vehicle) 在vehicle、car和motorcicle类中,我拥有所有属性,一个空构造函数和一个带参数的构造函数,以及一个应该显示为每辆车提供的信
Form1
、Vehicle
、Car
、和Motorcicle
(两者都继承自Vehicle
)
在vehicle
、car
和motorcicle
类中,我拥有所有属性,一个空构造函数和一个带参数的构造函数,以及一个应该显示为每辆车提供的信息的方法
问题是,我不知道在哪里以及如何我应该实例车辆
或其他类,如果我需要从表单中为每个类的属性分配一个值。如何以及在何处调用该方法
我想所有这些都应该在
表单1
中完成,但是,我是否要从处理create按钮的sub调用它 您可能应该将车辆
类标记为MustInherit
(c#中的abstract
)-这意味着一个类只能用作其他类的基类,并且不能直接实例化(派生类除外)
在创建车辆按钮单击事件处理程序中,您应该创建汽车
或摩托车
类的实例,但在显示信息按钮单击事件处理程序中,您应该引用车辆
类-当然,假设,它有一个名为GetInfo
的MustInherit
方法此方法应返回字符串,并在派生类中重写。 然后,在事件处理程序中获得信息后,应该在表单上显示 基本上,这样的事情应该让你开始:
Public MustInherit Class Vehicle
' this method should only return the info,
' it's the calling method that should decide what to do with that info
Public MustOverride Function GetInfo() As String
End Class
Public Class Car
Inherits Vehicle
' return the car's specific info
Public Overrides Function GetInfo() As String
End Function
End Class
Public Class Motorcycle
Inherits Vehicle
' return the motorcycle's specific info
Public Overrides Function GetInfo() As String
End Function
End Class
是的,根据您的单选按钮,您的按钮可能会启动车辆的创建,特别是汽车或自行车。你的OOP很简单,但看起来还不错。要记住的重要一点是,你的状态并不代表你的状态;后面应该有对象实例。因此,如果这是一个单表单应用程序,那么可以使用私有属性
列表(车辆)
来保存您的实例,您可以将其添加到按钮中(.add(New Car(),例如,{.Property1=Value1.Property2=Value2})
。如果您的实例是从表单外部(甚至是内部)修改的,您可以创建表单订阅的事件。实例不应直接修改表单。这是信息在UI和数据之间流动的最佳方式:UI更改>>通过属性的数据,数据更改>>通过事件的UI。您可以向车辆类中添加事件,并在更改属性时引发事件,在创建车辆时以您的表单订阅事件。不过,很抱歉。你的问题很广泛。对于这个平台来说,答案太大了。不过,您可以添加类和按钮事件处理程序的代码,并提出更具体的问题,我们将非常乐意为您提供帮助。乐意帮助:-)