Write the Talker interface, Animal abstract class, plus the Dog, Cat, Fish, and Radio classes for this Java Program.

EBK JAVA PROGRAMMING
9th Edition
ISBN:9781337671385
Author:FARRELL
Publisher:FARRELL
Chapter11: Advanced Inheritance Concepts
Section: Chapter Questions
Problem 2GZ
icon
Related questions
Question
Write the Talker interface, Animal abstract class, plus the Dog, Cat, Fish, and Radio classes for this Java Program.
 
  • 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"
 
Code:
 
import java.util.Scanner;
import java.util.ArrayList;

 

class Main
{
publicstaticvoid 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
privatestaticvoid greet(ArrayList<Animal> animals)
{
for(Animal a : animals)
{
System.out.println("Hello " + a.getName());
}
}

 

// Let each of the talkers speak...
privatestaticvoid 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

 

*/
Expert Solution
trending now

Trending now

This is a popular solution!

steps

Step by step

Solved in 8 steps

Blurred answer
Knowledge Booster
Developing computer interface
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Similar questions
  • SEE MORE QUESTIONS
Recommended textbooks for you
EBK JAVA PROGRAMMING
EBK JAVA PROGRAMMING
Computer Science
ISBN:
9781337671385
Author:
FARRELL
Publisher:
CENGAGE LEARNING - CONSIGNMENT
Microsoft Visual C#
Microsoft Visual C#
Computer Science
ISBN:
9781337102100
Author:
Joyce, Farrell.
Publisher:
Cengage Learning,
Programming Logic & Design Comprehensive
Programming Logic & Design Comprehensive
Computer Science
ISBN:
9781337669405
Author:
FARRELL
Publisher:
Cengage