Java程序辅导

C C++ Java Python Processing编程在线培训 程序编写 软件开发 视频讲解

客服在线QQ:2653320439 微信:ittutor Email:itutor@qq.com
wx: cjtutor
QQ: 2653320439
Workshop: Lab 10                                                                                                         Engineering Software 1 
Lab 10: 
Classes and Objects: Polymorphism 
 
Learning Objectives 
 
In this lab exercise you will learn: 
• The concept of polymorphism.  
• To use overridden methods to effect polymorphism.  
• To distinguish between abstract and concrete classes.  
• To declare abstract methods to create abstract classes.  
• How polymorphism makes systems extensible and maintainable.  
• To determine an object’s type at execution time.  
• To declare and implement interfaces. 
 
 
Lab Work 
General Note: Study every exercise and for each of them draw a structure diagram. Type 
in all these programs and run them inside your Java development kit.  
In your log-book take note of all the results from the execution of these programs and 
write down any problems that you had to solve. 
For each program of the exercises, explain clearly what each section of the program is 
doing. You may need to perform a walk-through, line by line, where this is appropriate. 
Record all your explanations in the log-book. 
Remember to put a date in your log-book and also to offer some discussions and a brief 
conclusion after every week’s work. 
Finally, complete the programming assignments at the end of the exercises, then enter 
comments in your logbook as you are doing this and save to your floppy disk/CD for 
submission with your logbook. 
 
Background 
• With polymorphism, it is possible to design and implement systems that are more easily 
extensible. Programs can be written to process even objects of types that do not exist 
when the program is under development. 
• There are many situations in which it is useful to declare abstract classes for which the 
programmer never intends to create objects. These are used only as superclasses, so we 
sometimes refer to them as abstract superclasses. You cannot instantiate objects of an 
abstract class. 
• Classes from which objects can be created are called concrete classes. 
• A class must be declared abstract if one or more of its methods are abstract. An 
abstract method is one with keyword abstract to the left of the return type in its 
declaration. 
Stavros Dimitriou                                   ©London South Bank University 1
Workshop: Lab 10                                                                                                         Engineering Software 1 
• If a class extends a class with an abstract method and does not provide a concrete 
implementation of that method, then that method remains abstract in the subclass. 
Consequently, the subclass is also an abstract class and must be declared abstract. 
• Java enables polymorphism - the ability for objects of different classes related by 
inheritance or interface implementation to respond differently to the same method call. 
• When a request is made through a superclass reference to a subclass object to use an 
abstract method, Java executes the implemented version of the method found in the 
subclass. 
• Although we cannot instantiate objects of abstract classes, we can declare variables 
of abstract-class types. Such variables can be used to reference subclass objects. 
• Due to dynamic binding (also called late binding), the specific type of a subclass object 
need not be known at compile time for a method call off a superclass variable to be 
compiled. At execution time, the correct subclass version of the method is called, based 
on the type of the reference stored in the superclass variable.  
• Operator instanceof checks the type of the object to which its left operand refers 
and determines whether this type has an is-a relationship with the type specified as its 
right operand. If the two have an is-a relationship, the instanceof expression is 
true. If not, the instanceof expression is false. 
• Every object in Java knows its own class and can access this information through 
method getClass, which all classes inherit from class Object. Method getClass 
returns an object of type Class (package java.lang), which contains information 
about the object’s type that can be accessed using Class’s public methods. Class 
method getName, for example, returns the name of the class.  
• An interface declaration begins with the keyword interface and contains a set of 
public abstract methods. Interfaces may also contain public static final 
fields.  
• To use an interface, a class must specify that it implements the interface and must 
either declare every method in the interface with the signatures specified in the interface 
declaration or be declared abstract.  
• An interface is typically used when disparate (i.e., unrelated) classes need to provide 
common functionality (i.e., methods) or use common constants. 
• An interface is often used in place of an abstract class when there is no default 
implementation to inherit. 
• When a class implements an interface, it establishes an is-a relationship with the 
interface type, as do all its subclasses.  
• To implement more than one interface, simply provide a comma-separated list of 
interface names after keyword implements in the class declaration. 
 
 
 
 
 
 
 
Stavros Dimitriou                                   ©London South Bank University 2
Workshop: Lab 10                                                                                                         Engineering Software 1 
Part A: Reinforce your understanding of key Java programming concepts 
 
Exercise 1: After reading the background above along with lecture notes, answer the 
given questions. The questions are intended to test and reinforce your understanding of 
key concepts. 
 
For each term in the left column, write the letter for the description from the right column 
that best matches the term. 
 
 
 
Exercise 2: Answer the following questions in your logbook. Your answers should be as 
concise as possible; aim for two or three sentences. 
1. Describe the concept of polymorphism. 
2. Define what it means to declare a method final and what it means to declare a 
class final. 
3. What happens when a class specifies that it implements an interface, but does not 
provide declarations of all the methods in the interface? 
4. Describe how to determine the class name of an object’s class. 
5. Distinguish between an abstract class and a concrete class. 
 
Stavros Dimitriou                                   ©London South Bank University 3
Workshop: Lab 10                                                                                                         Engineering Software 1 
Part B: Java programs 
 
Determine if there is an error in each of the following program segments. If there is an 
error, specify whether it is a logic error or a compilation error, circle the error in the 
program and write the corrected code in the space provided after each problem. If the 
code does not contain an error, write “no error.” [ Note : There may be more than one 
error in a program segment.] 
 
For exercises 1 and 2 assume the following definition of abstract class Employee. 
 
 
 
 
 
 
 
Stavros Dimitriou                                   ©London South Bank University 4
Workshop: Lab 10                                                                                                         Engineering Software 1 
Exercise 1: 
The following concrete class should inherit from abstract class Employee. A TipWorker 
is paid by the hour plus their tips for the week. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Stavros Dimitriou                                   ©London South Bank University 5
Workshop: Lab 10                                                                                                         Engineering Software 1 
Exercise 2: 
The following code should input information about five TipWorkers from the user and 
then print that information and all the TipWorkers’ calculated earnings. 
 
 
 
 
 
 
 
 
Stavros Dimitriou                                   ©London South Bank University 6