z3 Polimorfizm – Pola figur Polimorfizm

Download (0)

Full text

(1)

z3 - Polimorfizm – Pola figur

Copyright © 2017, mgr inż. Jacek Jusis 1

z3 Polimorfizm – Pola figur

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

Utwórzmy klasę bazową Figura. Niech klasa ta nie posiada żadnych właściwości. Niech posiada jedynie metodę o nazwie o Pole_figury o argumencie Pole.

Klasa ta niech będzie klasa abstrakcyjną (czyli nie będzie miała żadnej treści i jej metoda Pole_figury nie będzie miała treści i będzie miała atrybut „musi być nadpisywana” – MustOverride.

Nadpisywanie metody klasy bazowej będzie następowało w 2 klasach dziedziczących po klasie bazowej:

Kolo i Prostokat. Klasy te będą posiadały własne konstruktory tworzące wymiary promienia koła oraz długości i szerokości prostokąta.

Class1.vb

Public MustInherit Class Figura

Public MustOverride Sub Pole_figury(ByRef pole As Single) End Class

Public Class Kolo Inherits Figura

Private _promien As Single

Sub New(ByVal promien_kola As Single) _promien = promien_kola

End Sub

Public Overrides Sub Pole_figury(ByRef pole As Single) pole = Math.PI * _promien * _promien

End Sub End Class

Public Class Prostokat Inherits Figura

Private _dlugosc As Single Private _wysokosc As Single

Sub New(ByVal dlugosc_prostokata As Single, ByVal wysokosc_prostokata As Single) _dlugosc = dlugosc_prostokata

_wysokosc = wysokosc_prostokata End Sub

Public Overrides Sub Pole_figury(ByRef pole As Single) pole = _dlugosc * _wysokosc

End Sub End Class

Form1.vb

Public Class Form1

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

Handles ButtonPoleKola.Click Dim pole As Single

Dim mojeKolo As Figura

mojeKolo = New Kolo(CSng(TextBoxPromien.Text)) mojeKolo.Pole_figury(pole)

TextBoxPole.Text = CStr(pole) End Sub

(2)

z3 - Polimorfizm – Pola figur

Copyright © 2017, mgr inż. Jacek Jusis 2

Private Sub ButtonPoleProstokata_Click(sender As Object, e As EventArgs) _ Handles ButtonPoleProstokata.Click Dim pole As Single

Dim mojProstokat As Figura mojProstokat = _

New Prostokat(CSng(TextBoxDlugosc.Text), CSng(TextBoxWysokosc.Text)) mojProstokat.Pole_figury(pole)

TextBoxPole.Text = CStr(pole) End Sub

End Class Diagram klas

Rysunek 1. Diagram klas

Rysunek 2. Aplikacja w działaniu

Figure

Updating...

References

Related subjects :