• Nie Znaleziono Wyników

Polimorfizm – pola Polimorfizm

N/A
N/A
Protected

Academic year: 2021

Share "Polimorfizm – pola Polimorfizm"

Copied!
1
0
0

Pełen tekst

(1)

Copyright © 2015, mgr inż. Janusz Bonarowski 1

Polimorfizm – pola

Polimorfizm - w informatyce pojęcie dla określenia różnych sposobów zachowania się metody o tej samej nazwie w zależności od obiektu, na którym jest wykonywana. Polimorfizm wiąże się ściśle z dziedziczeniem.

Zadanie

Utworzymy klasę bazową Figura posiadającą metodę (napiszmy ją funkcją) o nazwie Pole() z atrybutem MustOverride bo nie ma treści.

Klasa bazowa niech będzie klasa abstrakcyjną (co definiuje atrybut klasy MustInherit).

Utwórzmy klasy potomne: Kolo i Kwadrat, które dziedziczą po klasie bazowej Figura (co definiuje wiersz Inherits Figura ).

Niech wartość promienia dla klasy Kolo i wartość boku dla klasy Kwadrat będzie określana przez konstruktor. Konstruktor to procedura Sub koniecznie o nazwie New. Procedura ta może mieć argumenty. W naszym przypadku będzie ona miała argument. Dzięki temu będziemy mogli ustawić wartość promienia lub boku, od razu instrukcjami, bez tworzenia właściwości (Property). Np.:

Dim mojaFigura As Figura mojaFigura = New Kolo(10) lub

mojaFigura = New Kwadrat(10)

Class1.vb

Public MustInherit Class Figura 'Klasa abstrakcyjna

Public MustOverride Function Pole() As Single 'nawet nie ma End Function End Class

Public Class Kolo Inherits Figura

Private _Promien As Single

Sub New(Promien_kola) 'konstruktor, zdefiniujemy Kolo(wymiar) _Promien = Promien_kola

End Sub

Public Overrides Function Pole() As Single Return Math.PI * _Promien ^ 2

End Function End Class

Public Class Kwadrat Inherits Figura

Private _Bok As Single

Sub New(Bok_kwadratu As Single) 'konstruktor, zdefiniujemy Kwadrat(wymiar) _Bok = Bok_kwadratu

End Sub

Public Overrides Function Pole() As Single Return _Bok ^ 2

End Function End Class

Form1.vb

Public Class Form1

Dim mojaFigura As Figura

Private Sub Button1_Click(sender As Object, e As EventArgs) _

Handles Button1.Click mojaFigura = New Kolo(10) 'korzystamy z konstruktora

TextBox1.Text = mojaFigura.Pole 'korzystamy z metody

mojaFigura = New Kwadrat(10) 'korzystamy z konstruktora TextBox2.Text = mojaFigura.Pole 'korzystamy z metody

End Sub End Class

Cytaty

Powiązane dokumenty

 odczytuje tekst literacki i inne dzieła sztuki (np. obraz, rzeźba, grafika) na poziomie dosłownym, na poziomie krytycznym z pomocą nauczyciela i rówieśników określa temat

Konstruktor kopiujący to konstruktor, który może zostać wywoływany przez kompilator (niejawnie) jeżeli zachodzi potrzeba stworzenia drugiego egzemplarza obiektu..

 Zmienna wskaźnikowa mająca typ pewnej klasy bazowej może wskazywać obiekty tej klasy oraz klas pochodnych - a zatem jest polimorficzna..  Zmienne niewskaźnikowe nie

W przypadku dwóch banków poziom współczynnika CET1 ukształtował się nieco poniżej oczekiwanych wartości, przy czym łączny niedobór kapitału w skali sektora

Niech także te klasy posiadają metody o takiej samej nazwie WypiszInfo() lecz wypisujące odpowiednio różne komunikaty.. Metody te niech nadpiszą metodę z

Pojawi się zatem mechanizm polimorfizmu - czyli metoda Rysuj, w zależności od obiektu, na którymjest wykonywana,.. sporządzi inny

Public MustOverride Property Wymiar As Single 'Tu trzeba zadeklarować z MustOverride, 'skoro właściwość w potomnej jest tworzona. End Get 'może jednak zwracać _Promien

Polimorfizm - w informatyce pojęcie dla określenia różnych sposobów zachowania się metody o tej samej nazwie w zależności od obiektu, na którym jest wykonywana.. Polimorfizm