0% found this document useful (0 votes)
136 views4 pages

Program 2.23 Calling Sequence of Constructors

This document contains examples of object-oriented programming concepts in Java including: constructor calling sequence, method overriding, dynamic method dispatch, abstract classes and methods. The examples demonstrate that subclasses inherit from parent classes, overridden methods change the parent's implementation, dynamic dispatch calls the appropriate method based on the object's actual type, and abstract classes define common behaviors while abstract methods must be defined in subclasses.

Uploaded by

api-3728136
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
136 views4 pages

Program 2.23 Calling Sequence of Constructors

This document contains examples of object-oriented programming concepts in Java including: constructor calling sequence, method overriding, dynamic method dispatch, abstract classes and methods. The examples demonstrate that subclasses inherit from parent classes, overridden methods change the parent's implementation, dynamic dispatch calls the appropriate method based on the object's actual type, and abstract classes define common behaviors while abstract methods must be defined in subclasses.

Uploaded by

api-3728136
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 4

//Calling sequence of constructors

class GrandFather
{
GrandFather()
{
System.out.println("This is GrandFather");
}
}
class Father extends GrandFather
{
Father()
{
System.out.println("This is Father");
}
}
class Child extends Father
{
Child()
{
System.out.println("This is Child");
}
}
class CallConstructor
{
public static void main(String args[])
{
Child roger = new Child();
}
}

Program 2.23 Calling sequence of constructors

//Method Overriding
class Maths
{
int var1, var2, var3;
Maths(int x, int y)
{
var1 = x;
var2 = y;
}
void calculate() //statement1
{
var3 = var1 + var2;
System.out.println("Addition : "+var3);
}
}
class Arithmetic extends Maths
{
Arithmetic(int x,int y)
{
super(x,y);
}
void calculate() //statement2
{
1
var3 = var1 - var2;
System.out.println("Subtraction : "+var3);
}
}
class OverRiding
{
public static void main(String args[])
{
Arithmetic a = new Arithmetic(30,18);
a.calculate(); //statement3
}
}
Program 2.24 Method Overriding

//Dynamic method dispatch


class Principal
{
void message()
{
System.out.println("This is Principal");
}
}
class Professor extends Principal
{
void message()
{
System.out.println("This is Professor");
}
}
class Lecturer extends Professor
{
void message()
{
System.out.println("This is Lecturer");
}
}
class Dynamic
{
public static void main(String args[])
{
Principal x = new Principal();
Professor y = new Professor();
Lecturer z = new Lecturer();
Principal ref; //reference variable of super class

ref = x; //statement1
ref.message();

ref = y; //statement2
ref.message();

ref = z; //statement3
ref.message();
}
}
2
Program 2.25 Dynamic method dispatch

//Practical application of dynamic method


class Square
{
int side,val;
Square() {}
Square(int x)
{
side = x;
}
void area()
{
val = side * side;
System.out.println("Square side : "+side);
System.out.println("Square area : "+val);
}
}
class Rectangle extends Square
{
int len, wid, val;
Rectangle(int x,int y)
{
len = x;
wid = y;
}
void area()
{
val = len * wid;
System.out.println("Rectangle length: "+len);
System.out.println("Rectangle width : "+wid);
System.out.println("Rectangle area : "+val);
}
}
class Circle extends Square
{
float rad, val;
Circle(float x)
{
rad = x;
}
void area()
{
val = 3.14f * rad * rad;
System.out.println("Circle radius : "+rad);
System.out.println("Circle area : "+val);
}
}
class DynamicMethod
{
public static void main(String args[])
{
Square s = new Square(18);
Rectangle r = new Rectangle(5,26);
Circle c = new Circle(14.20f);
3
Square ref;

ref = s;
ref.area();

ref = r;
ref.area();

ref = c;
ref.area();
}
}
Program 2.26 Example of dynamic method dispatch

//Abstract class and method


abstract class Maths
{
int var1, var2, var3;
abstract void calculate();
void addition()
{
var3 = var1 + var2;
System.out.println("Addition : "+var3);
}
}
class Arithmetic extends Maths
{
Arithmetic(int x,int y)
{
var1 = x;
var2 = y;
}
void calculate()
{
var3 = var1 - var2;
System.out.println("Subtraction : "+var3);
}
}
class AbstractClass
{
public static void main(String args[])
{
Arithmetic a = new Arithmetic(30,18);
a.calculate();
a.addition();
}
}
Program 2.27 Using abstract class and method

You might also like