In: Computer Science
Animal class
Create a simple class called Animal instantiated with a name and a method toString which returns the name.
Cat class
Create a simple class Cat which extends Animal, but adds no new instance variable or methods.
RedCat class
Create a simple class RedCat which extends Cat, but adds no new instance variable or methods.
WildCardTester class
Create a class with the main method and methods addCat, deleteCat and printAll as follows.
addCat method
Has two parameters, an ArrayList with a lower bound of RedCat, and a String with the name of a Cat. Adds the identified Cat reference to the ArrayList, and prints out a line as shown in the sample output below.
deleteCat method
Has two parameters, an ArrayList with an upper bound of Cat, and a String with the name of a Cat to be deleted. Deletes the identified Cat reference to the ArrayList, and prints out a line as shown in the sample output below.
printAll method
Has a single parameter of an ArrayList with a wildcard type. Prints out all the items in the ArrayList.
main method
Create two ArrayLists, one for Animal, and one for RedCat.
Use addCat to add “Tiger” to the animal ArrayList.
Use addCat to add “Tom”, “Siamese” and “Tiger” to the redCats ArrayList.
Use printAll to print the list in the animal ArrayList.
Use printAll to print the list in the redCat ArrayList.
Use deleteCat to delete the first item in the redCat ArrayList.
Use printAll to print the list in the redCat ArrayList.
Sample Output:
Cat Added named Tiger was added
Cat Added named Tom was added
Cat Added named Siamese was added
Cat Added named Tiger was added
The list of animals:
Tiger
The list of redCats:
Tom Siamese Tiger
Removed cat named Tom
The list of redCats after a deletion:
Siamese Tiger
Program Screenshots:
Animal.java
Cat.java
RedCat.java
WildCardTester.java
Program Code :
Animal.java
//Create a simple class called Animal instantiated with a name
and a method toString which returns the name.
public class Animal {
String name;
public Animal(String name) {
this.name = name;
}
@Override
public String toString() {
return name;
}
}
Cat.java
//Create a simple class Cat which extends Animal, but adds no
new instance variable or methods.
public class Cat extends Animal {
public Cat(String name) {
super(name);
}
}
RedCat.java
//Create a simple class RedCat which extends Cat, but adds no
new instance variable or methods.
public class RedCat extends Cat {
public RedCat(String name) {
super(name);
}
}
WildCardTester.java
//Create a class with the main method and methods addCat,
deleteCat and printAll as follows
import java.util.ArrayList;
import java.util.List;
public class WildCardTester {
public static void main(String[] args) {
// Create two ArrayLists, one for
Animal, and one for RedCat.
List<Animal> animal = new
ArrayList<Animal>();
List<RedCat> redCat = new
ArrayList<RedCat>();
addCat(animal,"Tiger");
addCat(redCat,"Tom");
addCat(redCat,"Siamese");
addCat(redCat,"Tiger");
System.out.println("The list of
animals:");
for(Animal a : animal) {
System.out.print(a + " ");
}
System.out.println();
System.out.println("The list of
redCats:");
for(RedCat r : redCat) {
System.out.print(r + " ");
}
System.out.println();
deleteCat(redCat, "Tom");
printAll(redCat);
}
// printAll method:Has a single parameter of an
ArrayList with a wildcard type. Prints out all the items in the
ArrayList.
private static void printAll(List<? super
RedCat> lists) {
System.out.println("The list of
redCats after a deletion:");
for(Object r : lists) {
System.out.print(r + " ");
}
}
/*deleteCat method:Has two parameters, an ArrayList
with an upper bound of Cat,
and a String with the name of a Cat to be
deleted.
Deletes the identified Cat reference to the ArrayList,
and prints out a line as shown in the sample output below.*/
private static void deleteCat(List<RedCat>
lists1, String name1) {
System.out.println("Removed cat
named " + name1);
for(RedCat rc : lists1) {
if(rc.name.equals(name1)) {
lists1.remove(rc);
break;
}
}
}
/*addCat method :Has two parameters, an ArrayList with
a lower bound of RedCat, and a String with the name of a Cat.
Adds the identified Cat reference to the ArrayList,
and prints out a line as shown in the sample output below.*/
private static void addCat(List<? super RedCat>
lists, String name1) {
lists.add(new RedCat(name1));
System.out.println("Cat Added named
" + name1 + " was added");
}
}
Sample Output: