Assignment on polymorphism how to design and define


Polymorphism

Objectives

In this lab assignment, students will learn:

- How to design and define interface

- How to implement methods declared in interface

- How to implement polymorphism

Goals

In this lab assignment, students will demonstrate the abilities to:

- Design and define interface

- Implement methods declared in interface

- Implement polymorphism

Grading

- Define interface (30 pts)
- Define base / derived classes (40 pts)
- Define tester program to implement polymorphism (30 pts)

In this lab you will create an interface inheritance hierarchy and perform polymorphism in a tester program. The following is the simplified UML for the hierarchy:

<>

IShape
+ Function ToString() As String
+ Function CalculateArea(): Double
TwoDShape
- xValue: Integer
- yValue: Integer
+ Sub New(Integer, Integer)
+ Property X():Integer
+ Property Y():Integer
+ Function CalculateArea():Double
+ Function ToString():Strinbg

Square

- sideValue: Double
+ Sub New(Integer, Integer,Double)
+ Property Side():Double
+ Function CalculateArea():Double
+ Function ToString():Strinbg

Circle

- radiusValue: Double
+ Sub New(Integer, Integer,Double)
+ Property Radius():Double
+ Function CalculateArea():Double
+ Function ToString():Strinbg

1. Create a Console Application Project called "InterfaceApp".

2. Rename the "Module1.vb" as "IShapeTester.vb"

3. Add a class definition, modify it to an Interface named "IShape" which has two members:

a. Function ToString() : String

b. Function CalculateArea() :Double

4. Add a class definition named "TwoDShape", which is an abstract base class, the following members should be included:

a. xValue: Integer ---- instance variable

b. yValue: Integer ---- instance variable

c. Sub New(Integer, Integer) ---- constructor

d. Property X():Integer ---- get and set xValue

e. Property Y():Integer ---- get and set yValue

f. Function CalculateArea():Double ---- "MustOverride" function and implements IShape's CalculateArea() function

g. Function ToString() ---- Overrides ToString() function in Object and implements IShape's method, display x and y coordinate on the console window (use the following definition)

Public Overrides Function ToString() As String Implements IShape.ToString

Return ("X-coordinate: " & vbTab & xValue & vbCrLf & "Y-coordinate: " & vbTab & yValue)

End Function

5. Add a class definition named "Circle", which inherits from "TwoDShape" class and includes the following members:

a. radiusValue: Double --- instance variable, radius of a circle

b. Sub New(Integer, Integer, Double) --- constructor

c. Property Radius():Double --- get and set radiusValue

d. Function CalculateArea():Double ---- override and implement the abstract method in base class Shape, calculate area of a circle using:
radiusValue * radiusValue * 3.14

e. Function ToString() ----- use Convert.ToString(Me.GetType()) to display the type of shape, then display X and Y coordinates by calling base class's ToString() function, finally, display radius value on console window (use the following definition)

Public Overrides Function ToString() As String

Return (Convert.ToString(Me.GetType()) & vbCrLf & MyBase.ToString() & vbCrLf & "Radius: " & vbTab & String.Format("{0:N2}", radiusValue))

End Function

6. Add a class definition named "Square", which inherit from "TwoDShape" class and include the following members:

a. sideValue: Double --- instance variable, side of a square

b. Sub New(Integer, Integer, Double) --- constructor

c. Property Side():Double --- get and set sideValue

d. Function CalculateArea():Double ---- override and implement the abstract method in base class Shape, calculate area of a square using: sideValue * sideValue

e. Function ToString() ----- use Convert.ToString(Me.GetType()) to display the type of shape, then display X and Y coordinates by calling base class's ToString() function, finally, display side value on console window (use the following definition)

Public Overrides Function ToString() As String

Return (Convert.ToString(Me.GetType()) & vbCrLf & MyBase.ToString() & vbCrLf & "Side: " & vbTab & String.Format("{0:N2}", sideValue))

End Function

7. Perform polymorphism in the Module "IShapeTester.vb":

a. Declare 4 objects:

s1: a circle object ( center at (2, 4) and radius = 3.0)

s2: a square object (center at (1, 5) and side = 4.0)

s3: a circle object (center at(3, 6) and radius = 3.5)

s4: a square object (center at(6, 3) and side = 6.0)

b. Put these 4 objects into an IShape array

c. Use a "For" loop to traverse the array and let each object do the following:

i. Call ToString() and let it display shape type, x and y coordinates, radius or side value

ii. Call CalculateArea() and let it calculate area of a shape, display the area on console window.

8. Here is the sample output window, your program should be performed similarly like this:

Request for Solution File

Ask an Expert for Answer!!
Basic Computer Science: Assignment on polymorphism how to design and define
Reference No:- TGS01060455

Expected delivery within 24 Hours