private string item_name;
protected double item_price;
public Item(string name){
public double getPrice(){
public virtual double getTotalPrice(){
public abstract void setPayment(double amount);
class DiscountedItem : Item{
private double item_discount;
private double item_quantity;
private double discounted_price;
private double payment_amount;
public DiscountedItem(string name, int quantity) : base(name){
this.item_quantity = quantity;
if(name.Equals("Wireless Gaming Mouse")) {
this.item_price = 799.50;
else if(name.Equals("Tablet Galaxy Tab")) {
this.item_price = 2500.00;
else if(name.Equals("5G Tablet Snapdragon")) {
this.item_price = 6888.00;
public double getDiscount(){
this.item_discount = 0.32;
}else if(item_quantity >= 3){
this.item_discount = 0.27;
}else if(item_quantity < 3){
this.item_discount = 0.00;
public override void setPayment(double amount){
this.payment_amount = amount;
this.change = amount - ((item_price * item_quantity) - (item_price * item_quantity * item_discount));
public double getChange(){
Console.WriteLine("====Insufficient payment====");
public override double getTotalPrice(){
return (item_price * item_quantity) - (item_price * item_quantity * item_discount);
public static void Main()
String itemName, itemQuan;
int quantity = 0, payment = 0;
Console.Write("Enter Item: ");
itemName = Console.ReadLine();
Console.Write("Enter Quantity: ");
itemQuan = Console.ReadLine();
quantity = Convert.ToInt32(itemQuan);
DiscountedItem discount = new DiscountedItem(itemName,quantity);
Console.WriteLine("====================================");
Console.WriteLine("Discount: " + discount.getDiscount());
Console.WriteLine("Price: " + discount.getPrice());
Console.WriteLine("Total Amount: " + discount.getTotalPrice());
discount.setPayment(payment);
Console.Write("Change: " + discount.getChange());