وقت بخیر دوستان، با آموزش برنامه نویسی (Visual Basic.NET (VB.NET از وب سایت پی وی لرن همراه هستیم. در این بخش از بررسی کلاس ها و اشیاء در VB.NET با وراثت در VB.NET ، کلاس های پایه و مشتق شده و مقدار دهی اولیه ی کلاس پایه در VB.NET آشنا خواهیم شد.
یکی از مهم ترین مفاهیم در برنامه نویسی شی گرا ، وراثت است. وراثت به ما امکان می دهد کلاس را از نظر کلاس دیگری تعریف کنیم که ایجاد و نگه داری یک برنامه ساده تر می شود. وراثت همچنین فرصتی را برای استفاده مجدد از قابلیت کد و زمان اجرای سریع فراهم می کند.
هنگام ایجاد یک کلاس ، به جای نوشتن اطلاعات کاملاً جدید از اعضا و توابع عضو ، برنامه نویس می تواند تعیین کند که کلاس جدید باید اعضای یک کلاس موجود را به ارث ببرد. به این کلاس موجود کلاس پایه گفته می شود و به کلاس جدید کلاس مشتق شده گفته می شود.
یک کلاس را می توان از بیش از یک کلاس یا رابط به دست آورد ، به این معنی که می تواند داده ها و توابع را از کلاس های پایه یا رابط های مختلف به ارث ببرد.
سینتکس استفاده شده در VB.NET برای ایجاد کلاس های مشتق شده به شرح زیر است.
1 2 3 4 5 6 | <access-specifier> Class <base_class> ... End Class Class <derived_class>: Inherits <base_class> ... End Class |
یک کلاس پایه Shape و مشتق شده ی کلاس Rectangle را در نظر بگیرید.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | ' Base class Class Shape Protected width As Integer Protected height As Integer Public Sub setWidth(ByVal w As Integer) width = w End Sub Public Sub setHeight(ByVal h As Integer) height = h End Sub End Class ' Derived class Class Rectangle : Inherits Shape Public Function getArea() As Integer Return (width * height) End Function End Class Class RectangleTester Shared Sub Main() Dim rect As Rectangle = New Rectangle() rect.setWidth(5) rect.setHeight(7) ' Print the area of the object. Console.WriteLine("Total area: {0}", rect.getArea()) Console.ReadKey() End Sub End Class |
هنگامی که کد بالا کامپایل و اجرا می شود، نتیجه زیر را ایجاد می کند.
1 | Total area: 35 |
کلاس مشتق شده متغیرهای کلاس عضو پایه و متدهای عضو را به ارث می برد. بنابراین ، قبل از ایجاد زیر کلاس باید شیء سوپر کلاس ایجاد شود. سوپر کلاس یا کلاس پایه به طور ضمنی با عنوان MyBase در VB.Net شناخته می شود.
برنامه زیر این موضوع را نشان می دهد.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | Live Demo ' Base class Class Rectangle Protected width As Double Protected length As Double Public Sub New(ByVal l As Double, ByVal w As Double) length = l width = w End Sub Public Function GetArea() As Double Return (width * length) End Function Public Overridable Sub Display() Console.WriteLine("Length: {0}", length) Console.WriteLine("Width: {0}", width) Console.WriteLine("Area: {0}", GetArea()) End Sub 'end class Rectangle End Class 'Derived class Class Tabletop : Inherits Rectangle Private cost As Double Public Sub New(ByVal l As Double, ByVal w As Double) MyBase.New(l, w) End Sub Public Function GetCost() As Double Dim cost As Double cost = GetArea() * 70 Return cost End Function Public Overrides Sub Display() MyBase.Display() Console.WriteLine("Cost: {0}", GetCost()) End Sub 'end class Tabletop End Class Class RectangleTester Shared Sub Main() Dim t As Tabletop = New Tabletop(4.5, 7.5) t.Display() Console.ReadKey() End Sub End Class |
هنگامی که کد بالا کامپایل و اجرا می شود، نتیجه زیر را ایجاد می کند.
1 2 3 4 | Length: 4.5 Width: 7.5 Area: 33.75 Cost: 2362.5 |
VB.Net از وراثت چندگانه پشتیبانی می کند.
در این بخش از بررسی کلاس ها و اشیاء در VB.NET با وراثت در VB.NET ، کلاس های پایه و مشتق شده و مقدار دهی اولیه ی کلاس پایه در VB.NET آشنا شدیم. در ادامه با مدیریت خطا همراه خواهیم بود.