CSC 216/s08/strive for happiness: Difference between revisions

From Expertiza_Wiki
Jump to navigation Jump to search
Line 7: Line 7:
===The problem===
===The problem===


Describe what you are attempting to teach students by this exercise.
Polymorphism is derived from Greek, meaning "many forms".  In Java, polymorphism is using a superclass variable to refer to a subclass object, the "many forms" of the superclass variable.  
<p>Polymorphism is derived from Greek, meaning "many forms".  Therefore, in Java, polymorphism is using a super class variable to refer to a subclass object, the "many forms" of the super class variable. It is useful because interfaces and inheritance can be used more abstractly.</p>
 
The core concepts that this activity will teach are polymorphism and inheritance. It will explain why inheritance is an "is-a" relationship between two classes, and how variables of a given type can refer to objects of either their own class, or any subclass object. It will also touch on how methods are overridden by subclass methods when they are defined in both the superclass and subclass.
 
--[[User:Deswartz|Deswartz]] 17:43, 26 March 2008 (EDT)


===Participants and props===
===Participants and props===

Revision as of 21:43, 26 March 2008

Formatting Resources

Formatting Help Guide from MetaWiki

What is Polymorphism?

The problem

Polymorphism is derived from Greek, meaning "many forms". In Java, polymorphism is using a superclass variable to refer to a subclass object, the "many forms" of the superclass variable.

The core concepts that this activity will teach are polymorphism and inheritance. It will explain why inheritance is an "is-a" relationship between two classes, and how variables of a given type can refer to objects of either their own class, or any subclass object. It will also touch on how methods are overridden by subclass methods when they are defined in both the superclass and subclass.

--Deswartz 17:43, 26 March 2008 (EDT)

Participants and props

The class will be divided into small groups of 3-5 people. Each group will receive a number of Animal Cards (explained below) and a list of exercises will be shown on the board.

An Action Card will be a small index card with a class definition and one or two methods. For example,

   public class Dog extends Quadruped {
       public void talk() {
           System.out.println("Woof");
       }
   }
   public class Quadruped extends Animal {
       public void walk() {
           System.out.println("Walk");
       }
   }
   public class Bird extends Animal {
       public void fly() {
           System.out.println("Fly");
       }
       public void talk() {
           System.out.println("Chirp");
       }
   }
   public class Owl extends Bird {
       public void talk() {
           System.out.println("Whoo");
       }
   }

An html page, powerpoint slide, or simply a part of the class notes will have a list of exercises for the groups to perform. For example,

   Bird B = new Owl();
   B.talk();
   Animal A = new Bird();
   A.talk();

The students will then write down the answers to all of these exercises based upon what is on their cards.

--Deswartz 17:31, 26 March 2008 (EDT)

The script

The exercise will be introduced, and the props and instructions given to the class, which should take no more than 5 minutes. Each group will be given a stack of about 15 cards, and each group will have identical cards to each other group.

The class will then be given 10-15 minutes to do about 20 exercises, based on the cards they are given.

After the exercise is concluded, the class will review the correct answers and discuss them for 10-15 minutes. The class will go over how the Animal superclass is analogous to the Object superclass in Java. They will also talk about how methods of a subclass override methods of the superclass, in the same way that the methods of the animals do.

--Deswartz 17:37, 26 March 2008 (EDT)