Program to use inheritance to extend Box class
Like methods, constructors can also be overloaded. Constructor overloading is way of having more than one constructor which does different tasks. For e.g. Vector class has 4 types of constructors. If you do not want to specify the initial capacity and capacity increment then you can simply use default constructor of Vector class like this
Vector v = new Vector( );
In this program, we have created a class Box1 which have four constructors one is default and other three are parameterized constructors. Then we extended the class Box1 in BoxWeight1. At last we have created object of BoxWeight1 and called the method volume( ).
PROGRAM
//This program uses inheritance to extend Box.
class Box1 {
double width;
double height;
double depth;
// construct clone of an object
Box1(Box1 ob) { // pass object to constructor
width = ob.width;
height = ob.height;
depth = ob.depth;
}
// constructor used when all dimensions specified
Box1(double w, double h, double d) {
width = w;
height = h;
depth = d;
}
// constructor used when no dimensions specified
Box1() {
width = -1; // use -1 to indicate
height = -1; // an uninitialized
depth = -1; // box
}
// constructor used when cube is created
Box1(double len) {
width = height = depth = len;
}
// compute and return volume
double volume() {
return width * height * depth;
}
}
//Here, Box is extended to include weight.
class BoxWeight1 extends Box1 {
double weight; // weight of box
// constructor for BoxWeight
BoxWeight1(double w, double h, double d, double m) {
width = w;
height = h;
depth = d;
weight = m;
}
}
class DemoBoxWeight {
public static void main(String args[]) {
BoxWeight1 mybox1 = new BoxWeight1(10, 20, 15, 34.3);
BoxWeight1 mybox2 = new BoxWeight1(2, 3, 4, 0.076);
double vol;
vol = mybox1.volume();
System.out.println("Volume of mybox1 is " + vol);
System.out.println("Weight of mybox1 is " + mybox1.weight);
System.out.println();
vol = mybox2.volume();
System.out.println("Volume of mybox2 is " + vol);
System.out.println("Weight of mybox2 is " + mybox2.weight);
}
}
OUTPUT
C:\>javac DemoBoxWeight.java C:\>java DemoBoxWeight Volume of mybox1 is 3000.0 Weight of mybox1 is 34.3 Volume of mybox2 is 24.0 Weight of mybox2 is 0.076