• Nie Znaleziono Wyników

z3 Polimorfizm – Pola figur Polimorfizm

N/A
N/A
Protected

Academic year: 2021

Share "z3 Polimorfizm – Pola figur Polimorfizm"

Copied!
2
0
0

Pełen tekst

(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

Cytaty

Powiązane dokumenty

Klasa napis ma wirtualny destruktor i dziedziczy od klasy punkt metody wirtualne p_wysokosc i p_atrybuty (niewykorzystane) oraz metodę wyswietl (wykorzystana). Klasa n_ramka

 Nie zawierają definicji metod, lecz tylko ich deklaracje publiczne (public).  Nie zawierają składowych

public void keyPressed (KeyEvent evt) { //kod obsługi zdarzeń } public void keyReleased (KeyEvent evt) { //kod obsługi zdarzeń } public void keyTyped (KeyEvent evt) { //kod

 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

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

Jej 3 klasy potomne, natomiast, będą posiadały metodę Narysuj() (z atrybutem Overrides) rysującą, w uproszczeniu, modyfikację stopnia, czyli pręt, gwint lub dla klasy

Niech wartość promienia dla klasy Kolo i wartość boku dla klasy Kwadrat będzie określana przez konstruktor.. Konstruktor to procedura Sub koniecznie o