It has just one Main class which tests abstract class Animal and its 3 subclasses: Dog, Cat, and Fish. It also tests the Talkers: Dog, Cat, and Radio. So your job is to write all 6 of these simple classes (they should be less than one page each) :
OOPs
In today's technology-driven world, computer programming skills are in high demand. The object-oriented programming (OOP) approach is very much useful while designing and maintaining software programs. Object-oriented programming (OOP) is a basic programming paradigm that almost every developer has used at some stage in their career.
Constructor
The easiest way to think of a constructor in object-oriented programming (OOP) languages is:
It has just one Main class which tests abstract class Animal and its 3 subclasses: Dog, Cat, and Fish. It also tests the Talkers: Dog, Cat, and Radio. So your job is to write all 6 of these simple classes (they should be less than one page each) :
- Talker.java - the interface Talker, which has just one void method called speak()
- Animal.java - the abstract class Animal, which stores an animal's name. (No abstract methods). It should contain 2 methods:
- a constructor with 1 argument (the name)
- a method getName() which returns the name.
- Dog.java - the class Dog, which extends Animal and implements Talker. It should contain 3 methods:
- a constructor with no arguments, giving the dog a default name of "Fido"
- a constructor with 1 argument (the name)
- a speak() method that prints "Woof" on the screen. Use @Override
- Cat.java - the class Cat, which extends Animal and implements Talker. It should contain just 2 methods:
- a constructor with 1 argument (the name) (no default name like dogs have)
- a speak() method that prints "Meow" on the screen. Use @Override
- Fish.java - the class Fish, which is an Animal that doesn't talk. So it only needs 1 constructor (with its name).
- Radio.java - the class Radio, which is a Talker, but not an animal. Its @Override speak() method should print "blahblahblah"
import java.util.Scanner;
import java.util.ArrayList;
class Main
{
public static void main(String[] args)
{
Scanner keyIn = new Scanner(System.in);
ArrayList<Talker> chatterbox = new ArrayList<Talker>();
ArrayList<Animal> menagerie = new ArrayList<Animal>();
String name, kind, another;
do
{
System.out.print("What do you have? Enter 'd' for dog, 'c' for cat, 'f' for fish, or 'r' for radio: ");
kind = keyIn.nextLine();
switch(kind.charAt(0))
{
case 'd': case 'D':
Dog doggy;
System.out.print("What is your dog's name? ");
name = keyIn.nextLine();
if(name.length() < 1)
doggy = new Dog();
else
doggy = new Dog(name);
chatterbox.add(doggy);
menagerie.add(doggy);
break;
case 'c': case 'C':
System.out.print("What is your cat's name? ");
name = keyIn.nextLine();
Cat myCat = new Cat(name);
chatterbox.add(myCat);
menagerie.add(myCat);
break;
case 'f': case 'F':
System.out.print("What is your fish's name? ");
name = keyIn.nextLine();
menagerie.add(new Fish(name));
break;
case 'r': case 'R':
chatterbox.add(new Radio());
break;
default:
System.out.println("Invalid entry.");
}
System.out.print("Do you want to enter another? Type y or n: ");
another = keyIn.nextLine();
}while(another.charAt(0) == 'y');
greet(menagerie);
cacophony(chatterbox);
}
// Greet each of the animals
private static void greet(ArrayList<Animal> animals)
{
for(Animal a : animals)
{
System.out.println("Hello " + a.getName());
}
}
// Let each of the talkers speak...
private static void cacophony(ArrayList<Talker> talkers)
{
for(Talker t : talkers)
{
t.speak();
System.out.println();
}
}
}
* Sample Output when all the other classes have been written:
What do you have? Enter 'd' for dog, 'c' for cat, 'f' for fish, or 'r' for radio: d
What is your dog's name?
Do you want to enter another? Type y or n: y
What do you have? Enter 'd' for dog, 'c' for cat, 'f' for fish, or 'r' for radio: d
What is your dog's name? Franny
Do you want to enter another? Type y or n: y
What do you have? Enter 'd' for dog, 'c' for cat, 'f' for fish, or 'r' for radio: f
What is your fish's name? Bubbles
Do you want to enter another? Type y or n: y
What do you have? Enter 'd' for dog, 'c' for cat, 'f' for fish, or 'r' for radio: c
What is your cat's name? Tiger
Do you want to enter another? Type y or n: y
What do you have? Enter 'd' for dog, 'c' for cat, 'f' for fish, or 'r' for radio: r
Do you want to enter another? Type y or n: y
What do you have? Enter 'd' for dog, 'c' for cat, 'f' for fish, or 'r' for radio: d
What is your dog's name? Jenny
Do you want to enter another? Type y or n: n
Hello Fido
Hello Franny
Hello Bubbles
Hello Tiger
Hello Jenny
Woof
Woof
Meow
blahblahblah
Woof
*/
Step by step
Solved in 8 steps