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 } }
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 -
Trending now
This is a popular solution!
Step by step
Solved in 5 steps with 1 images