Create an abstract NewspaperSubscription class with fields for the subscriber name, address, and rate. Include get and set methods for the name field and get methods for the address and subscription rate; the setAddress() method is abstract. Create two subclasses named PhysicalNewspaperSubscription and OnlineNewspaperSubscription. The parameter for the setAddress() method of the PhysicalNewspaperSubscription class must contain at least one digit; otherwise, an error message is displayed and the subscription rate is set to 0. If the address is valid, the subscription rate is assigned $15. The parameter for the setAddress() method of the OnlineNewspaperSubscription class must contain an at sign (@) or an error message is displayed. If the address is valid, the subscription rate is assigned $9. Code I was given - public class DemoSubscriptions {     public static void main(String args[])     {         PhysicalNewspaperSubscription pnsGood = new PhysicalNewspaperSubscription();         OnlineNewspaperSubscription onsGood = new OnlineNewspaperSubscription();         PhysicalNewspaperSubscription pnsBad = new PhysicalNewspaperSubscription();         OnlineNewspaperSubscription onsBad = new OnlineNewspaperSubscription();         pnsGood.setName("DePalma");         pnsGood.setAddress("23 Oak Avenue");         display(pnsGood);         pnsBad.setName("Gomez");         pnsBad.setAddress("Maple Street");         display(pnsBad);               onsGood.setName("Carter");         onsGood.setAddress("carter@myMail.com");         display(onsGood);         onsBad.setName("Lee");         onsBad.setAddress("Elm Street");         display(onsBad);      }     public static void display(NewspaperSubscription n)     {         System.out.println("Name: " + n.getName() + "   Address: " +                 n.getAddress() + "   Rate: " + n.getRate() + "\n");     } } public abstract class NewspaperSubscription {     protected String name;     protected String address;     protected double rate;     public String getName()     {         // write your code here     }     public void setName(String n)     {         // write your code here     }     public String getAddress()     {         // write your code here     }     public double getRate()     {         // write your code here     }     public abstract void setAddress(String s); } public class OnlineNewspaperSubscription extends NewspaperSubscription {     public void setAddress(String a)     {         // write your code here     } }   public class PhysicalNewspaperSubscription extends NewspaperSubscription {     public void setAddress(String a)     {         // write your code here     } }

EBK JAVA PROGRAMMING
9th Edition
ISBN:9781337671385
Author:FARRELL
Publisher:FARRELL
Chapter11: Advanced Inheritance Concepts
Section: Chapter Questions
Problem 3PE
icon
Related questions
Question

This is the question -

Create an abstract NewspaperSubscription class with fields for the subscriber name, address, and rate. Include get and set methods for the name field and get methods for the address and subscription rate; the setAddress() method is abstract.

Create two subclasses named PhysicalNewspaperSubscription and OnlineNewspaperSubscription. The parameter for the setAddress() method of the PhysicalNewspaperSubscription class must contain at least one digit; otherwise, an error message is displayed and the subscription rate is set to 0. If the address is valid, the subscription rate is assigned $15. The parameter for the setAddress() method of the OnlineNewspaperSubscription class must contain an at sign (@) or an error message is displayed. If the address is valid, the subscription rate is assigned $9.

Code I was given -

public class DemoSubscriptions
{
    public static void main(String args[])
    {
        PhysicalNewspaperSubscription pnsGood = new PhysicalNewspaperSubscription();
        OnlineNewspaperSubscription onsGood = new OnlineNewspaperSubscription();
        PhysicalNewspaperSubscription pnsBad = new PhysicalNewspaperSubscription();
        OnlineNewspaperSubscription onsBad = new OnlineNewspaperSubscription();
        pnsGood.setName("DePalma");
        pnsGood.setAddress("23 Oak Avenue");
        display(pnsGood);
        pnsBad.setName("Gomez");
        pnsBad.setAddress("Maple Street");
        display(pnsBad);      
        onsGood.setName("Carter");
        onsGood.setAddress("carter@myMail.com");
        display(onsGood);
        onsBad.setName("Lee");
        onsBad.setAddress("Elm Street");
        display(onsBad); 
    }
    public static void display(NewspaperSubscription n)
    {
        System.out.println("Name: " + n.getName() + "   Address: " +
                n.getAddress() + "   Rate: " + n.getRate() + "\n");
    }
}


public abstract class NewspaperSubscription
{
    protected String name;
    protected String address;
    protected double rate;
    public String getName()
    {
        // write your code here
    }
    public void setName(String n)
    {
        // write your code here
    }
    public String getAddress()
    {
        // write your code here
    }
    public double getRate()
    {
        // write your code here
    }
    public abstract void setAddress(String s);
}

public class OnlineNewspaperSubscription extends NewspaperSubscription
{
    public void setAddress(String a)
    {
        // write your code here
    }

}
 
public class PhysicalNewspaperSubscription extends NewspaperSubscription
{
    public void setAddress(String a)
    {
        // write your code here
    }

}


Expert Solution
trending now

Trending now

This is a popular solution!

steps

Step by step

Solved in 5 steps with 1 images

Blurred answer
Knowledge Booster
Software Development
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,