In: Computer Science
Consider the following class definition:
public class Parent {
private int varA;
protected double varB;
public Parent(int a, double b){
varA = a;
varB = b;
}
public int sum( ){
return varA + varB;
}
public String toString( ){
return "" + varA + " " + varB;
}
}
Consider that you want to extend Parent to Child. Child will have a third int instance data varC.
code:
public class Main
{
public static void main(String[] args) {
System.out.println("Parent class");
Parent ob = new
Parent(3,4.5);
System.out.println(ob);
System.out.println("Sum is:
"+ob.sum());
System.out.println("\nChild
class");
Child ob1 = new Child(3,4,5);
System.out.println(ob1);
System.out.println("Sum is:
"+ob1.sum());
System.out.println("Average is:
"+ob1.average());
}
}
class Parent {
private int varA;
protected double varB;
public Parent(int a, double b)
{
varA = a;
varB = b;
}
// If we add double and int it will always returns double not int.
So i have changed this
public double sum( )
{
return varA+varB;
}
public String toString( )
{
return "" + varA + " " + varB;
}
}
// Creating child class which extends parent class
class Child extends Parent
{
private int varC; // third instance
// We cant access private variables of parent class in child
class.
// The private variables are only accessed by that class
methods
// parameterized constructor for child class
public Child(int a,double b,int c)
{
// calling super/parent class constructor
super(a,b);
varC = c;
}
// Override sum method
public double sum( )
{
return super.sum()+varC;
}
// Creating method average
public double average()
{
return (super.varB+varC)/2;
}
// Override method toString
public String toString( )
{
return super.toString()+ " " + varC;
}
}
OUTPUT: